我想重新加载一个使用JavaScript.我发现到目前为止最好的方法是将iframe的
src
属性设置为自身,但这不是很干净.有任何想法吗?
document.getElementById('some_frame_id').contentWindow.location.reload();
要小心,在Firefox中,window.frames[]
不能通过id索引,而是通过名称或索引
document.getElementById('iframeid').src = document.getElementById('iframeid').src
它将重新加载iframe
,甚至跨域!经过IE7/8,Firefox和Chrome测试.
如果使用jQuery,这似乎工作:
$('#your_iframe').attr('src', $('#your_iframe').attr('src'));
我希望stackoverflow不会太难看.
window.frames['frameNameOrIndex'].location.reload();
添加空白空间也会自动重新加载iFrame.
document.getElementById('id').src += '';
由于原始策略相同,因此在修改指向其他域的iframe时无效.如果您可以定位较新的浏览器,请考虑使用HTML5的跨文档消息传递.您可以在此处查看支持此功能的浏览器:http://caniuse.com/#feat=x-doc-messaging.
如果您无法使用HTML5功能,那么您可以按照此处列出的技巧进行操作:http://softwareas.com/cross-domain-communication-with-iframes.该博客条目也很好地定义了问题.
我只是在chrome中遇到这个问题,唯一可行的方法是移除和更换iframe。例:
$(".iframe_wrapper").find("iframe").remove(); var iframe = $(''); $.find(".iframe_wrapper").append(iframe);
非常简单,其他答案未涵盖。