5

是否可以用 iframe 中加载的文档替换浏览器窗口(_top 框架)的内容,而无需发出新的 GET 来加载该文档?

像这样的东西:

<html>
<head>
<script type="text/javascript" language="JavaScript">
$(document).ready(function() {
  $("#link").click(function() {
    // should present in the browser window the content of the iframe WITHOUT reload
    // even preserve javascript/head code
    $(document).html($("#frameDestination").html());
  });
});
</script>
</head>
<body>
<a id="link" href="#">full window</a>
<iframe id="frameDestination" src="http://www.some-random-site.com" width="900px" height="500px"></iframe>
</body>
</html>
4

2 回答 2

1

在 jQuery 中使用 iframe 时使用 contents()。

$("#YourIframe").contents().find("html").html();

在 iframe与父级位于同一域中时才有效。

于 2013-01-24T16:19:23.987 回答
1

我没有测试过跨域,但是在同一个域上我有这个脚本工作:

$(document).ready(function() {
  $("#link").click(function() {
    var iframeBody = document.getElementById("frameDestination").contentDocument,
    head = iframeBody['head'].innerHTML, 
    body = iframeBody['body'].innerHTML;
    $('body').html( body );
    $('head').html( head );
  });
});

在最新的 Firefox 中,我什至可以在框架中的脚本标记中设置一个变量,并在单击链接后在 _top 中看到该值。

于 2013-01-24T16:26:16.973 回答