2014-04-30 113 views
-2

當我點擊我的"opener"窗口中的文本時,我打開一個新窗口。在這個新窗口中,我想顯示"Hello World",而不是文本"Bye, World",儘管我的代碼由於某種原因而不工作。 類型錯誤:wnd.document.getElementById(...)爲空爲什麼getElementById()返回NULL?

有什麼不對? 謝謝!

<html> 
<head> 
    <script type="text/javascript"> 


     function funct() 
     { 
      var wnd = window.open("index.html","","width=500, height=500");   
      wnd.document.getElementById('hello').style.display = "inline"; 
      wnd.document.getElementById('goodbye').style.display = "none"; 
     } 

    </script> 

    <style type="text/css"> 
      #hello{ 
       display: none; 
      } 

      #goodbye{ 
       display: inline; 
      } 
    </style> 
</head> 
<body> 

    <p id="hello">Hello World</p> 
    <p id="goodbye" onclick="funct()">Bye, World</p> 

</body> 
</html> 
+0

它只是由@patsy issa修改(具有驚人的響應時間!!) – SeriousM

+3

頁面內容不立即加載,'.open()'調用不會等待。 – Pointy

+0

但它爲什麼工作,與document.write(「你好世界」)? – masm64

回答

1

如果你願意,你可以這樣做。

function funct() 
{ 
    var wnd = window.open("index.html","","width=500, height=500");   
    wnd.window.onload = function(){ 
     wnd.document.getElementById('hello').style.display = "inline"; 
     wnd.document.getElementById('goodbye').style.display = "none"; 
    }; 
} 
+0

謝謝,這是工作 – masm64

-1

爲什麼你需要wnd只能用嗎?

document.getElementById('hello').style.display = "inline"; 
+1

我想編輯我新打開的窗口,而不是開放者 – masm64

+0

那些誰投票,請分享一些短語,以便我們可以知道你爲什麼這樣做。我們都在這裏幫助對方不玩遊戲 – Ron

+1

@Ron你的答案基本上不能解決原來的問題。 OP有興趣影響通過'window.open()'調用加載的頁面,而不是當前頁面。 – Pointy

0

您#hello指的是主窗口,而不是正在被打開窗戶,也許你應該考慮制定新的文本節點動態時,因爲#hello生活駐留在加載新的窗口主窗口。