iframe重新加载按钮

use*_*771 10 html javascript css iframe button

我看过许多网站,但似乎没有一个正常工作或者我不理解它们.我想要一个刷新某个iframe的简单按钮.该按钮位于父页面上,iframe名称为"Right".

Fab*_*tté 20

有很多方法可以做到这一点.假设这个iframe标记:

<iframe name="Right" src="http://www.example.com"></iframe>
Run Code Online (Sandbox Code Playgroud)

我们可以通过函数调用来完成它:

HTML

<button onclick="refreshIframe();">Refresh Iframe</button>
Run Code Online (Sandbox Code Playgroud)

JS

function refreshIframe() {
    var ifr = document.getElementsByName('Right')[0];
    ifr.src = ifr.src;
}
Run Code Online (Sandbox Code Playgroud)

或者使用内联JS:

<button onclick="var ifr=document.getElementsByName('Right')[0]; ifr.src=ifr.src;">Refresh Iframe</button>
Run Code Online (Sandbox Code Playgroud)

或者使用事件监听器:

HTML

<button id="iframeRefresher">Refresh Iframe</button>
Run Code Online (Sandbox Code Playgroud)

JS

window.onload = function() {
    document.getElementById('iframeRefresher').addEventListener('click', function() {
        var ifr = document.getElementsByName('Right')[0];
        ifr.src = ifr.src;
    });
}
Run Code Online (Sandbox Code Playgroud)

与上面相同,现在支持IE <= 8并使用全局范围中的函数作为处理程序而不是匿名函数:

HTML

<button id="iframeRefresher">Refresh Iframe</button>
Run Code Online (Sandbox Code Playgroud)

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;
}
Run Code Online (Sandbox Code Playgroud)

所有这一切甚至没有触及jQuery或任何其他库.

您应该使用以下哪些?无论您认为哪个更易于维护和可读.尽可能避免全局变量.我个人避免使用标记的内联JS,并且听众似乎没必要,但那只是我.选择最适合你的人.