JSON.stringify 有问题
我正在尝试将所有元标记从页面中拉出并将它们传递给 Firefox 工作文件以处理它们并返回一个对象。
因此,当我没有工作人员运行问题时,我的代码以前可以工作,只有在我转向使用工作人员文件时才出现(由于我无法进入的原因,我需要使用工作人员!)
所以以前我会使用
var metas = document.getElementsByTagName("meta");
然后我可以使用循环遍历 metas 对象
for (var index in metas){
var currentMeta = metas[index];
//(and so on, this code worked perfectly)
当我移动到外部工作文件方案时会出现问题。发生的情况是我像往常一样拉出元标记,然后我使用 JSON.stringify 来推送我可以推送给工作人员的东西。
在所有这些介绍性废话之后,这是我的问题的根源:例如,我登陆一个页面,其中包含以下 html 代码
<meta content="width=1024" name="viewport">
<meta charset="UTF-8">
<meta content="Mozilla Hacks – the Web developer blog" name="title">
如果我运行以下代码,我会得到一个数组
var metas = document.getElementsByTagName("meta");
返回一个包含 3 个元素的数组
[meta, meta, meta]
如果我使用以下方法对其进行字符串化:
var jsonMetas = JSON.stringify(metas);
我希望 jsonMetas 包含以下内容:
{"0":{"content":"width=1024","name":"viewport"},"1":{"charset":"UTF-8"},"2":{"content":"Mozilla Hacks - the web developer blog","name":"title"} }
但是,当我查看 jsonMetas 对象时,我看到它返回了:
{"0":{"constructor":{}},"1":{"constructor":{}},"2":{"constructor":{}}}
啊????
我不太擅长 JavaScript,所以请您解释一下(用非常简短的语言 :))发生了什么?
为什么 stringify 调用会返回异常结构化的对象?我究竟做错了什么?
提前感谢您的回答。