main.html 有以下代码:
<iframe id="myframe" src="myframe.html"></iframe>
我在main.html中触发了这段代码:
alert($('#myframe').contents().find('#mypage').contents().find('html').html());
myframe.html 有以下代码:
<frameset>
<frame id="mypage" src="mypage.html">
</frameset>
mypage.html 包含以下所有代码:
<!DOCTYPE HTML>
<html>
<head>
</head>
hello world!
</html>
我想从main.html页面获取mypage.html的所有HTML代码,但是我失败了。我的方式有什么问题?
答案 0 :(得分:0)
从技术上讲,我不认为你可以使用框架,因为这会是一个安全问题。
如果您确实需要使用ajax,可以使用ajax加载内部框架的源代码。但它肯定不会是现场
答案 1 :(得分:0)
首先,您需要在main.html中包含jquery库。 其次, Chrome会返回下一个错误:
不安全的JavaScript尝试访问 带有URL文件的框架:///../myframe.html 来自带框架的框架 文件:///../main.html。域, 协议和端口必须匹配。
所以这是一个安全问题
答案 2 :(得分:0)
我遇到了同样的问题。
我能够解决它。
在我的例子中:
myframe = ReportFrameReportViewerControl
mypage = report
这是获取html的代码(请注意,所有网站都需要位于同一个域中):
function bla()
{
var str =
$(
$(
$("#ReportFrameReportViewerControl")[0].contentWindow.document
)
.find("#report")[0].contentWindow.document
).find("html").html()
;
alert(str);
}
您可能希望将其放在按钮上,按下该按钮后可以按下该按钮:
<input type="button" value="test" onclick="bla();" />
另外,如果你想在页面加载后自动获取html,你需要注册myframe和amp;的onload函数。我的编目。
像这样(用bla替换setTableSize):
$(document).ready(function ()
{
$('#ReportFrameReportViewerControl').load(function ()
{
//setNewHeight();
//alert("Loading");
setTableSize();
$(
$("#ReportFrameReportViewerControl")[0].contentWindow.document
)
.find("#report").load(function ()
{
//alert("load report");
setTableSize();
}
); // End load #report
}); // End Function load #ReportFrameReportViewerControl
}); // End Function document.ready