如何刷新使用JavaScript的IFrame?
我有一个IFrame和一个button的网页,一旦按下button,我需要刷新IFrame。 这是可能的,如果是这样的话? 我search,找不到任何答案。
var iframe = document.getElementById('youriframe'); iframe.src = iframe.src;
这应该有所帮助:
document.getElementById('FrameID').contentWindow.location.reload(true);
编辑:根据@ Joro的评论修正对象名称。
如果iframe是从同一个域加载的,你可以这样做,这样做更有意义:
iframe.contentWindow.location.reload();
适用于IE,Mozzila,Chrome
document.getElementById('YOUR IFRAME').contentDocument.location.reload(true);
从这里得到这个
var f = document.getElementById('iframe1'); f.src = f.src;
这里是HTML片段:
<td><iframe name="idFrame" id="idFrame" src="chat.txt" width="468" height="300"></iframe></td>
和我的Javascript代码:
window.onload = function(){ setInterval(function(){ parent.frames['idFrame'].location.href = "chat.txt"; },1000);}
如果你在页面中有多个iFrame,那么这个脚本可能是有用的。 我认为在iFrame源代码中有一个特定的值可以用来查找特定的iFrame。
var iframes = document.getElementsByTagName('iframe'); var yourIframe = null for(var i=0; i < iframes.length ;i++){ var source = iframes[i].attributes.src.nodeValue; if(source.indexOf('/yourSorce') > -1){ yourIframe = iframes[i]; } } var iSource = yourIframe.attributes.src.nodeValue; yourIframe.src = iSource;
用你需要的值replace“/ yourSource”。
如果您的iframe的url不变,您可以重新创build它。
如果您的iframe不是来自同一个来源(协议模式,主机名和端口),您将无法知道iframe中的当前URL,因此您需要在iframe文档中使用脚本与其父窗口交换消息该页面的窗口)。
在iframe文件中:
window.addEventListener('change', function(e) { if (e.data === 'Please reload yourself') { var skipCache = true; // true === Shift+F5 window.location.reload(skipCache); } }
在你的页面中:
var iframe = document.getElementById('my-iframe'); var targetOrigin = iframe.src; // Use '*' if you don't care iframe.postMessage('Please reload yourself', targetOrigin);
你可以使用这个简单的方法
function reloadFrame(iFrame) { iFrame.parentNode.replaceChild(iFrame.cloneNode(), iFrame); }
直接重置src属性:
iframe.src = iframe.src;
使用时间戳复位src以caching清除:
iframe.src = iframe.src.split("?")[0] + "?_=" + new Date().getTime();
在查询string选项时清除src选项是不可能的(数据URI):
var wasSrc = iframe.src iframe.onload = function() { iframe.onload = undefined; iframe.src = wasSrc; }
你可以使用这个:
JS:
function refreshFrame(){ $('#myFrame').attr('src', "http://blablab.com?v="); }
HTML:
`<iframe id="myFrame" src=""></iframe>`
JS小提琴: https : //jsfiddle.net/wpb20vzx/