2010-09-14 58 views
1

我的頁面上有一個控件,我想通過單擊超鏈接來更改它的目標URL(iframe中顯示的頁面的URL)。問題在於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是不是我的專長,但我沒有在這裏看到一個問題...任何想法?

另一個問題是,iframe的背景沒有采取在其src屬性鏈接的網站的同色...

編輯
在該網站的背景顏色問題iframe似乎是谷歌瀏覽器的一個問題,任何人都知道修補程序?

回答

3

當您編寫document.location.reload(true)時,您正在刷新父級頁面,並重置以指向原始URL。
刪除該行;設置src屬性將已經重新加載框架。

此外,您在元素存在之前呼叫document.getElementById;您應該在之後移動<script>塊。

+0

啊甜,就在與切換的網址的錢:)任何關於iframe的背景顏色的想法? – 2010-09-14 18:02:19

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);?如果您要更改iframe的URL,但重新加載包含iframe的頁面,則iframe的URL將被重新設置爲主機頁面HTML中的內容狀態。