Javascript 如何获取iframe的全部确切内容并能够对其进行编辑?

Javascript 如何获取iframe的全部确切内容并能够对其进行编辑?,javascript,jquery,iframe,innerhtml,Javascript,Jquery,Iframe,Innerhtml,我知道你可以用jQuery让innerHTML做这样的事情 $('iframe').load(function(){ alert($(this).contents().find('body').html()); }); 这将获取body标记的innerHTML。但我想要全部。我想要HTML标签和doctype。整个源代码基本上是。我希望能够将其作为一个整体进行编辑。“作为一个整体”,我的意思是我想做这样的事情 $('iframe').html('<!DOCTYPE html PUBL

我知道你可以用jQuery让innerHTML做这样的事情

$('iframe').load(function(){
  alert($(this).contents().find('body').html());
});
这将获取body标记的innerHTML。但我想要全部。我想要HTML标签和doctype。整个源代码基本上是。我希望能够将其作为一个整体进行编辑。“作为一个整体”,我的意思是我想做这样的事情

$('iframe').html('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
  <title>title</title>
</head>
<body>
hello world
</body>
</html>');
$('iframe').html('
标题
你好,世界
');
我该怎么做


注意:我意识到DOM在不同的浏览器中处理方式不同,因此Opera的innerHTML看起来与Firefox的不同。但这没什么大不了的。

我想您正在访问的文档是在同一台服务器上?显然,能够访问(和编辑!)另一个网站的内容是非常危险的

$('iframe').contentWindow.document.documentElement.outerHTML
将包含完整的html标记及其内容
outerHTML
不完全是跨浏览器的,您可能需要解析documentElement对象的属性。请注意,您不能编辑outerHTML(至少在WebKit中),因此可以使用innerHTML编辑内容


$('iframe').contentWindow.document.doctype
表示doctype。您无法获取实际标记,但可以从其属性检索信息。是的MSDN参考!DOCTYPE元素

文档。write
是你的朋友

例如:

var iframeEl = document.createElement('iframe');
document.body.appendChild(iframeEl);

var oFrame = window.frames[window.frames.length - 1];
oFrame.document.write('<html><head><title>foo</title></head><body>bar</body></html>');

oFrame.document.body.innerHTML; // "bar"
var-iframeEl=document.createElement('iframe');
文件.body.appendChild(iframeEl);
var of name=window.frames[window.frames.length-1];
of name.document.write('foobar');
of name.document.body.innerHTML;//“酒吧”

的name.document不是x浏览器;使用ame.contentDocument的
和ame.contentWindow.document的
@geowa4并不完全正确。将
htmliframelement
contentDocument
属性与
Window
对象的
document
属性混淆(可通过
Window.frames
集合获得)。请注意,我是通过iframe对应的窗口对象访问文档的,而不是通过iframe元素的
contentDocument
属性访问文档的?去旧学校?