【问题标题】:How to Read a JavaScript Object in CDATA如何在 CDATA 中读取 JavaScript 对象
【发布时间】:2018-11-15 19:36:16
【问题描述】:
我正在尝试读取网页上 CDATA 中的 JavaScript 对象中的变量值。该对象非常奇怪,因为它的格式为 a.b.c ... 我认为不可能制作这样的 JS 对象,而且它可能是非法的,因为它似乎无法在 CDATA 之外工作。
<script type="text/javascript">
//<![CDATA[
a.b.c = {
num : 100
};
//]]>
</script>
您将如何读取 CDATA 中 num 的值?
谢谢。
【问题讨论】:
标签:
javascript
object
cdata
【解决方案1】:
@SLaks:CDATA 是字符数据,不能被 XHTML 解析器解释而是按原样读取,绝不是不应由 HTML 解析器解释的注释。从这个问题来看,这一点非常明显。 'a.b.c' 指的是对象'a' 的属性'b' 的属性集'c',该对象'a' 可以在HTML 页面的其他地方或页面加载的外部脚本中定义。如果您将其复制并粘贴到其上下文之外,它将无法运行。
【解决方案2】:
我找到了这个答案:
<script>
var page = document.documentElement.outerHTML;
var pos = page.indexOf('num') + 5;
var id = page.substring (pos);
document.write (id.split(',')[0]);
</script>
在被搜索的页面中,搜索项(“num”)是一个不会出现在页面其他任何地方的字符串。