如何解析在另一个文档中声明的javascript变量?

时间:2017-12-28 14:21:13

标签: javascript jquery parsing

考虑一下,

我将外部文档保存到html变量中:

var html="<!DOCTYPE html>\n<html>\n<head>\n<title>My Title</title>\n<script type=\"text/javascript\">\nvar my_var=\"12345\";\n</script>\n</head>\n<body>\n<div>\n<span>hello div</span>\n</div>\n</body>\n</html>";

为了便于阅读,我们可以将此变量输出到控制台:

console.log(html)

这将输出:

<!DOCTYPE html>
<html>
<head>
<title>My Title</title>
<script type="text/javascript">
var my_var="12345";
</script>
</head>
<body>
<div>
<span>hello div</span>
</div>
</body>
</html>

使用Jquery我能够获取并操纵dom元素的值。

例如,我可以阅读 span 的内容:

console.log($('span',html).text());

哪个会输出:

hello div

但是我仍然不清楚如何访问变量。

我们可以使用Jquery和Javascript,

检索 my_var 的值的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

猜猜我接下来会使用正则表达式,因为eval显然是不安全的。

var matches= html.match(/my_var\s*=\s*['"](.+?)['"]\s*;/);
if (matches) console.log(matches[1]);

答案 1 :(得分:0)

您可以尝试创建元素而不将其实际附加到文档中

var elem = document.createElement("div");
elem.innerHTML = html;
var script = elem.getElementsByTagName("script")[0];
eval(script.innerText);
console.log(my_var); //Should output my_var's value