【发布时间】:2018-04-28 04:51:18
【问题描述】:
我试图弄清楚如何从一个巨大的 html 字符串中提取一个变量。下面是一个简化的例子:
更新这是尝试使用下面提到的常用方法的屏幕截图。像test['foo'] 这样简单的事情是行不通的。这是从服务器返回的字符串,永远不会加载到实际的文档或窗口中。它只是一个保存在内存中的 html 对象。
https://jsfiddle.net/hvpvg3o4/
HTML
<div id="test"> <!-- div is just for jsfiddle -->
<script>
var test = { // <-- I WANT YOU!
foo: 'bar'
};
var somethingIDontWant = 1;
var iDontCareAboutYouEither = {
blag: 1 + 1
};
</script>
</div>
JavaScript
var testTag = document.getElementById('test');
var scriptTag = testTag.getElementsByTagName('script');
// var testObj = ?;
我希望我可以从脚本标签中获取文本并运行 eval 或一些 JSON.parse,但由于脚本标签中还有其他内容,所以我不能
有没有办法从脚本标签或一些花哨的正则表达式中提取变量?
【问题讨论】:
-
你能解释一下你为什么要做这样的事情吗?你的 javascript 或 html 字符串来自哪里?
-
eval(scriptTag.innerHTML); console.log(test.foo);
-
我正在尝试从包含大量 HTML 的响应中提取 URL。现在,我没有进入服务器并修复该过程的选项,所以我基本上被脚本标签和内联 JavaScript 卡住了。这是一个创可贴修复,但试图让它发挥作用
标签: javascript jquery html parsing