使用javaScript/jQuery将doctype添加到Iframe

使用javaScript/jQuery将doctype添加到Iframe,javascript,jquery,html,iframe,Javascript,Jquery,Html,Iframe,我想在加载iframe后将Doctype添加到iframe中。 我尝试了以下脚本,但没有任何运气: $(document).ready(function(){ $('.ms-dlgFrame').ready(function(){ var iframe = $('.ms-dlgFrame'); var newHTML = "<!DOCTYPE html><html>"+iframe.contents().find('html').html()+"

我想在加载iframe后将Doctype添加到iframe中。 我尝试了以下脚本,但没有任何运气:

$(document).ready(function(){
   $('.ms-dlgFrame').ready(function(){
     var iframe = $('.ms-dlgFrame');
     var newHTML = "<!DOCTYPE html><html>"+iframe.contents().find('html').html()+"</html>";
     iframe.contents().find('html').html(newHTML);
     //iframe.contents().prepend('<!DOCTYPE html>');
   });
});
$(文档).ready(函数(){
$('.ms dlgFrame').ready(函数(){
变量iframe=$('.ms dlgFrame');
var newHTML=“”+iframe.contents().find('html').html()+”;
iframe.contents().find('html').html(newHTML);
//iframe.contents()前缀(“”);
});
});

这似乎很简单,但我犯了一个错误。

据我所知,出于安全原因,您无法将iframe的内容作为目标。

我找到了解决方案

$(document).ready(function(){
   $('.ms-dlgFrame').ready(function(){
     var iframe = $('.ms-dlgFrame');
     var newDoctype = document.implementation.createDocumentType(
        'html',
        '',
        ''
     );
     iframe[0].contentDocument.insertBefore(newDoctype,iframe[0].contentDocument.childNodes[0]);
   });
});

我认为,如果动态更改doctype,它不会改变文档的呈现方式。在更改其HTML之前,可能应该在iframe的src中设置doctype?只有在不控制目标时才是这样。