2010-09-14 2 views
1

У меня есть элемент управления на моей странице, и я хочу изменить его целевой URL (url страницы, отображаемой в iframe) щелчком по гиперссылке. Проблема в том, что iframe не обновляется при нажатии. Я уверен, что я что-то не хватает, но я не знаю, что:Функция Javascript, по-видимому, не срабатывает

<script type="text/javascript"> 
var source = document.getElementById("CurrentlySelected") 
function change(u) { 
    if (source.getAttribute("src") != u) { 
     source.setAttribute("src", u); 
     document.location.reload(true); 
    } 
} 
</script> 

<ul> 
    <li><a href="#" onclick="change('http://www.somewebsite.com');">Website 1</a></li> 
    <li><a href="#" onclick="change('http://www.thiswebsite.net');">Website 2</a></li> 
</ul> 

<iframe id="CurrentlySelected" width="800px" height="600px" src="http://www.somewebsite.com"></iframe> 

JS не моя сильная сторона, но я не вижу здесь проблемы ... какие-нибудь идеи?

Другая проблема состоит в том, что фон из фрейма не принимает один и тот же цвет веб-сайта, связанного с его атрибутом Src ...

EDIT
Проблема с цветом фона веб-сайта в iframe, похоже, проблема с Google Chrome, кто-нибудь знает об исправлении?

ответ

3

Когда вы пишете document.location.reload(true), вы пополняете родительский страницу , сброс , чтобы указать на оригинальный URL.
Снимите эту линию; установка атрибута src уже перезагрузит фрейм.

Кроме того, вы вызываете document.getElementById до того, как элемент существует; вам следует переместить блок <script> после .

+0

А-а-а-а-а-а-а-а-а-а-а-а-а-а-а-а-а-а-а-а-а-а! –

1

Попробуйте это ...

<ul> 
    <li><a href="#" onclick="change('http://www.somewebsite.com');">Website 1</a></li> 
    <li><a href="#" onclick="change('http://www.thiswebsite.net');">Website 2</a></li> 
</ul> 

<iframe id="CurrentlySelected" width="800px" height="600px" src="http://www.somewebsite.com"></iframe> 

<script type="text/javascript"> 
// now iframe is available... 
var source = document.getElementById("CurrentlySelected") 
function change(u) { 
    if (source.getAttribute("src") != u) { 
     source.setAttribute("src", u); 
     // NOT NEEDED: document.location.reload(true); 
    } 
} 

</script> 
0

Является ли проблема вашей document.location.reload(true);? Если вы изменяете URL-адрес iframe, но затем перезагружаете страницу, содержащую iframe, URL-адрес iframe будет возвращен к состоянию того, что находится в HTML-странице главной страницы.

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