我在一个页面上有两个 iframe,一个对另一个进行了更改,但另一个 iframe 在我刷新之前不会显示更改。有没有一种简单的方法可以用 jQuery 刷新这个 iframe?
<div class="project">
<iframe id="currentElement" class="myframe" name="myframe" src="http://somesite.com/something/new"></iframe>
</div>
我在一个页面上有两个 iframe,一个对另一个进行了更改,但另一个 iframe 在我刷新之前不会显示更改。有没有一种简单的方法可以用 jQuery 刷新这个 iframe?
<div class="project">
<iframe id="currentElement" class="myframe" name="myframe" src="http://somesite.com/something/new"></iframe>
</div>
$( '#iframe' ).attr( 'src', function ( i, val ) { return val; });
如果 iframe 不在不同的域中,您可以执行以下操作:
document.getElementById(FrameID).contentDocument.location.reload(true);
但是由于 iframe 位于不同的域中,因此同源策略将拒绝您访问 iframe 的contentDocument
属性。
但是,如果您的代码在 iframe 的父页面上运行,您可以通过将其 src 属性设置为自身来强制重新加载跨域 iframe。像这样:
// hackishly force iframe to reload
var iframe = document.getElementById(FrameId);
iframe.src = iframe.src;
如果您尝试从另一个 iframe 重新加载 iframe,那您就不走运了,这是不可能的。
你也可以使用jquery。这与 Alex 仅使用 JQuery 提出的建议相同:
$('#currentElement').attr("src", $('#currentElement').attr("src"));
使用 jQuery 重新加载 iframe
在 iframe 内创建一个链接,让我们说 id = "reload" 然后使用以下代码
$('#reload').click(function() {
document.location.reload();
});
并且您可以使用所有浏览器。
使用 HTML 重新加载 iframe(无 Java Script 要求)
它有更简单的解决方案:在(FF,Webkit)中没有javaScript的情况下工作
只需在您的 iframe 内制作一个锚点
<a href="#" target="_SELF">Refresh Comments</a>
当您单击此锚点时,它只会刷新您的 iframe
但是, 如果您将参数发送到您的 iframe,请按以下方式操作。
<a id="comnt-limit" href="?id=<?= $page_id?>" target="_SELF">Refresh Comments</a>
不需要任何页面 url 因为 -> target="_SELF" 为你做
使用 jquery,你可以使用这个:
$('#iframeid',window.parent.document).attr('src',$('#iframeid',window.parent.document).attr('src'));