我在许多网站上查看了,但它们似乎都行不通,或者我无法理解它们。我想要一个简单的按钮来刷新特定的iframe。该按钮将位于父页面上,iframe名称为“Right”。
我在许多网站上查看了,但它们似乎都行不通,或者我无法理解它们。我想要一个简单的按钮来刷新特定的iframe。该按钮将位于父页面上,iframe名称为“Right”。
有很多方法可以做到这一点。假设有以下iframe
标记:
<iframe name="Right" src="http://www.example.com"></iframe>
我们可以通过函数调用来实现:
HTML
<button onclick="refreshIframe();">Refresh Iframe</button>
JS
function refreshIframe() {
var ifr = document.getElementsByName('Right')[0];
ifr.src = ifr.src;
}
或者使用内联JS:
<button onclick="var ifr=document.getElementsByName('Right')[0]; ifr.src=ifr.src;">Refresh Iframe</button>
或者使用事件监听器:
HTML
<button id="iframeRefresher">Refresh Iframe</button>
JS
window.onload = function() {
document.getElementById('iframeRefresher').addEventListener('click', function() {
var ifr = document.getElementsByName('Right')[0];
ifr.src = ifr.src;
});
}
同上,现在使用全局作用域中的函数作为处理程序,支持IE<= 8。
HTML
<button id="iframeRefresher">Refresh Iframe</button>
JS
window.onload = function() {
var refresherButton = document.getElementById('iframeRefresher');
if (refresherButton.addEventListener)
refresherButton.addEventListener('click', refreshIframe, false);
else
refresherButton.attachEvent('click', refreshIframe);
}
function refreshIframe() {
var ifr = document.getElementsByName('Right')[0];
ifr.src = ifr.src;
}
所有这些都没有涉及到jQuery或其他库。
你应该使用哪一个?任何你认为更易于维护和阅读的。尽可能避免全局变量。个人建议避免将JS与标记混合在一起,监听器似乎也是不必要的,但这只是我的想法。选择最适合你的方法即可。
在你的 iframe 中添加新的 id
,并尝试下面的代码。
var iframe = document.getElementById('FrameId');
$("button").click(function() {
iframe.src = iframe.src;
}):
:P
- Fabrício Matté