我不相信这可以做到,但是可以改变通过src呈现的iframe的内容。
我使用的第三方编译的ASP.Net控件(Telerik RadEditor .Net 2版本)在其渲染代码的一部分中有一个iframe,并且不包含doctype,并且它在IE8中导致某些元素出现问题。
编译时,我无法在源代码中添加它。我想知道是否可以用另一种方式添加它?
我在jquery中尝试了很多东西,例如:
$(element).html().prepend("doc type here");
$(element).html("doctype here" + $(element).html());
以及所有其他狡猾的工作。
答案 0 :(得分:1)
按src
,你的意思是内容,对吧? (src
是iframe的一个属性,它指定iframe本身的URI)
您可以通过更改iframe的the content来更改doctype。一种可能的方法是重新创建iframe并重新插入内容,同时预先添加doctype。不幸的是,it is not possible使用DOM将doctype添加到现有的iframe中。
示例:
var iframe = document.createElement("iframe");
var idocument = iframe.contentDocument;
idocument.open();
idocument.write("<!DOCTYPE html...") // Doctype goes here
idocument.write("<html>...</html>") // Content goes here
idocument.close();
答案 1 :(得分:1)
我使用iframe使用iframe做了类似的事情,使用jQuery:$('iframe').contents().find("#internaldiv")
,它有效,但只有当iframe src和主网站属于同一个域时,在其他情况下你必须处理相同的域策略(http://en.wikipedia.org/wiki/Same-origin_policy)并在您的服务器和其他域服务器中实现跨域策略。