JSON.stringify に問題があります
ページからすべてのメタ タグを引き出し、それらを Firefox ワーカー ファイルに渡して処理し、オブジェクトを返そうとしています。
そのため、以前はワーカーを実行していなかったときにコードが機能していましたが、ワーカー ファイルを使用するようになったときにのみ問題が発生しました (詳しく説明できないため、ワーカーを使用する必要があります!)
したがって、以前はすべてのメタタグを取得していました
var metas = document.getElementsByTagName("meta");
次に、次を使用してメタオブジェクトをループできます
for (var index in metas){
var currentMeta = metas[index];
//(and so on, this code worked perfectly)
外部ワーカー ファイル シナリオに移行すると、問題が発生します。何が起こるかというと、通常どおりメタ タグを引き出してから、ワーカーにプッシュできるものに JSON.stringify を使用します。
すべてのイントロ ブラブの後、ここに私の問題の根源があります。
<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 呼び出しが異常に構造化されたオブジェクトを返すのはなぜですか? 私は何を間違っていますか?
ご回答ありがとうございます。