注入HTML不加载资源?

时间:2013-06-30 21:37:58

标签: javascript html

我正在处理我认为非常不寻常的情况。我需要操纵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;
    }
}

1 个答案:

答案 0 :(得分: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&amp; HTML。