4

文字列を解析して DOM ツリーを作成したいと思います。documentFragment私はAPIを使用することに決め、これまでにこれを行いました:

var htmlString ="Some really really complicated html string that only can be parsed by a real browser!";
var fragment = document.createDocumentFragment('div');
var tempDiv = document.createElement('div');
fragment.appendChild(tempDiv);
tempDiv.innerHTML = htmlString;
console.log(tempDiv);

しかし問題は、このスクリプトが私のブラウザ (具体的には Chrome) が実際の HTTP リクエストを送信することです! どういう意味ですか?これを例にとります:

var htmlString ='<img src="somewhere/odd/on/the/internet" alt="alt?" />';
var fragment = document.createDocumentFragment('div');
var tempDiv = document.createElement('div');
fragment.appendChild(tempDiv);
tempDiv.innerHTML = htmlString;
console.log(tempDiv);

これは次のことにつながります。

クロムエラー

これに対する回避策はありますか? またはHTML文字列を解析するための他のより良いアイデアはありますか?

4

4 に答える 4

3

さて、あなたはページに要素を追加しています、もちろんブラウザはコンテンツをフェッチしようとしています。

DOMParserの使用を調べることができます

var htmlString ='<img src="somewhere/odd/on/the/internet" alt="alt?" />';
var parser = new DOMParser();
var doc = parser.parseFromString(htmlString , "text/html");

MDN Docページには、ネイティブでサポートされていないブラウザをサポートするコードがあります。

于 2012-10-05T13:52:30.147 に答える
1

ここで私の質問の答えがstackoverflow、この答えで見つかりました。答えは、ネイティブ ブラウザー機能を使用して HTML を解析するコードで構成されていますが、HTTP 要求を送信しないセミサンドボックス環境で行われます。それが他の人にも役立つことを願っています。

于 2012-10-05T14:48:29.007 に答える