【发布时间】:2012-07-02 11:26:03
【问题描述】:
我查看了许多网站,但似乎没有一个网站可以正常工作,或者我不理解它们。我想要一个简单的按钮来刷新某个 iframe。该按钮将位于父页面上,并且 iframe 名称为“Right”。
【问题讨论】:
标签: javascript html css button iframe
我查看了许多网站,但似乎没有一个网站可以正常工作,或者我不理解它们。我想要一个简单的按钮来刷新某个 iframe。该按钮将位于父页面上,并且 iframe 名称为“Right”。
【问题讨论】:
标签: javascript html css button iframe
有很多方法可以做到这一点。假设这个iframe 标记:
<iframe name="Right" src="http://www.example.com"></iframe>
我们可以通过function call:
HTML
<button onclick="refreshIframe();">Refresh Iframe</button>
JS
function refreshIframe() {
var ifr = document.getElementsByName('Right')[0];
ifr.src = ifr.src;
}
或者inline JS:
<button onclick="var ifr=document.getElementsByName('Right')[0]; ifr.src=ifr.src;">Refresh Iframe</button>
或者使用event listener:
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;
});
}
同上,现在是with support for IE <= 8 and using a function in the global scope as handler,而不是匿名的:
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,而且侦听器似乎是不必要的,但这只是我。选择更适合您的。
【讨论】:
:P
在您的 iframe 中添加新的id 并尝试以下代码。
var iframe = document.getElementById('FrameId');
$("button").click(function() {
iframe.src = iframe.src;
}):
【讨论】:
name,而不是id。标签中或问题中的任何地方都没有 jQuery。最后你的语法无效。