0

私は非常に珍しいシナリオだと思うものを扱っています。iFrame のコンテンツを操作する必要があり、そのために DOM をいじっています。ただし、CSS リンクや画像などの特定の要素が読み込まれていないことに気付きました。私のコードは次のようになります。

var htmlString = "<html>resources, images, links, the whole shebang here</html>";
var doc = new DOMParser().parseFromString(htmlString, "text/xml"); //"text/xml" part is necessary

frame.contentDocument.replaceChild(doc.getElementsByTagName("html")[0], frame.contentDocument.documentElement);

要素が注入されるという点で機能しますが、多くのリソースでは負荷がトリガーされません。機能するはずですが、何らかの理由で機能していません。リソースのロードをトリガーする方法はありますか?

編集:これは今のところうまくいくようです。

var resources = frameDOM.querySelectorAll("[href],[src]");
for(var i = 0; i<resources.length; i++){
    var resource = resources[i];

    if(resource.src != null){
        resource.src = resource.src;
    } else if(resource.href != null){
        resource.href = resource.href;
    }
}
4

1 に答える 1

0
 var doc = new DOMParser().parseFromString(htmlString, "text/xml"); //"text/xml" part is necessary

いいえ、text/xml一部は必要ありません。実際、あなたの場合は完全に間違っています。

正しい方法は

 var doc = new DOMParser().parseFromString(htmlString, "text/html"); 

XML と HTML の違いを理解していただければ幸いです。

于 2013-06-30T21:54:50.887 に答える