2012-07-02 2 views
8

Я просмотрел многие веб-сайты, но ни один из них, похоже, не работает правильно, или я их не понимаю. Мне нужна простая кнопка, которая обновляет определенный iframe. Кнопка будет на родительской странице, а имя iframe - «Right».Кнопка перезагрузки iframe

ответ

15

Существует много способов сделать это. Предполагая, что это 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; 
} 

Or с 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 с разметкой, и слушатели, похоже, не нужны, но это только я. Выберите то, что вам подходит.

+0

Woah! Я никогда не думал, что существует так много способов сделать это! Я бы хотел, чтобы кто-то мог помещать это на сайт о iframes! Благодаря! – user1373771

+0

@ user1373771 без проблем, вы можете отметить это как принятый ответ, когда у вас есть время, если это все. ': P' –

-3

Добавить id в ваш iframe и попробуйте под кодом.

var iframe = document.getElementById('FrameId'); 
$("button").click(function() { 
    iframe.src = iframe.src; 
}): 
+1

OP сказал 'имя', а не' id'. В тегах нет ни одного jQuery или нигде в вопросе. И у вас есть недопустимый синтаксис в конце. –

Смежные вопросы