2011-02-14 73 views
2

我有一個iframe,我想作ifelse語句中的if條件,如果IFRAME源等於speciefied頁面股利應顯示:藉助iframe

if(getElementById('iframe').src = 'someurl'){ 
getElementById('div').style.display. = 'block'; 
} 

問題

我不是JS的專家,但是當我使用這個腳本的iframe加載「someurl」自動asoon作爲主頁面加載,我不想,我想div在iframe源通過鏈接變爲「someurl」時顯示。該鏈接工作正常,它會更改iframe src,但if語句不起作用。

回答

5
  • =分配
  • ==是相等測試
  • ===而不型鑄造相等測試(並且通常者優先於==

使用===,而不是=

然後您需要正確引用getElementById。它是document對象的一種方法,不是全局的。

使用document.getElementByIdgetElementById

然後,你需要得到您的顯示屬性擺脫尾隨.性格。

然後,假設你想在幀中的一個鏈接被跟蹤時更新它,而不是隻在當前頁面中的鏈接被跟蹤時,你需要定期重新運行該函數以查看它是否已經改變。

setInterval(yourFunctionName, 5000); 

然後,由於頁面可能離你正在尋找的URL移動,你需要添加一個else語句

function yourFunctionName() { 
    var div = document.getElementById('div'); /* Really? Your unique ID for a specific div is 'div'?! */ 
    if(document.getElementById('iframe').src === 'someurl'){ 
     div.style.display = 'block'; 
    } else { 
     div.style.display = 'none'; 
    } 

} 
3
if(document.getElementById('iframe').src == 'someurl'){ 
      document.getElementById('yourdiv').style.display = 'block'; 
    } 

使用==,而不是=你是分配值到src不是檢查的條件。

使用=====

+0

刪除**。**`style.display`之後的** – Adeel 2011-02-14 12:29:07

+0

@Adeel感謝您的更正。你在哪裏得到你的頭像。只是好奇=) – kjy112 2011-02-14 15:38:24

0

你有錯誤

if(getElementById('iframe').src = 'someurl') 

=是分配,但你應該檢查條件。使用==。您可以交換條件,以消除這樣的錯誤。這裏是一個例子:

if('someurl' == getElementById('iframe').src) 

basick想法比常數應該是比較的一部分。如果你不小心寫作業而不是比較,我會得到更明確的錯誤。