2009-10-09 56 views
0

我無法通過javascript從框架獲取主窗體的按鈕。我通過querystring獲取按鈕的ID,然後執行以下腳本,但無法獲取按鈕。當我寫參數的名稱,如getElementByID(' btnDelete'),它創建了控制權?可能是什麼原因,我該如何解決這個問題?從javascript框架中查找父窗體的按鈕

 function okay() { 
     var btn = getQuerystring('btn'); 
     window.parent.document.getElementByID(btn).click(); 

}

function getQuerystring(key, default_) { 
      if (default_ == null) { 
       default_ = ""; 
      } 
      var search = unescape(location.search); 
      if (search == "") { 
       return default_; 
      } 
      search = search.substr(1); 
      var params = search.split("&"); 
      for (var i = 0; i < params.length; i++) { 
       var pairs = params[i].split("="); 
       if (pairs[0] == key) { 
        return pairs[1]; 
       } 
      } 
      return default_;  } 

回答

1

我相信這是在你的代碼一個錯字。它應該是window.parent.document.getElementById(btn).click();用小寫字母「d」表示。

+0

不,在visual studio快速監視窗口中,當我分配值'btnDelete',我可以得到它。我改變了getElementByID getElementById但沒有解決我的問題。 – Alexander 2009-10-09 08:08:01

0

保存爲test.html

<html> 
    <body> 
     <form action="http://google.com"> 
      <input type="submit" id="thebutton" value="Click Me!"/> 
     </form> 
     <iframe src="test2.html?btn=thebutton"/> 
    </body> 
</html> 

保存爲test2.html

<html> 
    <head> 
     <script> 
      function okay() { 
       var btn = getQuerystring('btn'); 
       window.parent.document.getElementById(btn).click(); 
      } 

      function getQuerystring(key, default_) { 
       if (default_ == null) { 
        default_ = ""; 
       } 
       var search = unescape(location.search); 
       if (search == "") { 
        return default_; 
       } 
       search = search.substr(1); 
       var params = search.split("&"); 
       for (var i = 0; i < params.length; i++) { 
        var pairs = params[i].split("="); 
        if (pairs[0] == key) { 
         return pairs[1]; 
        } 
       } 
       return default_; 
      } 
     </script> 
    </head> 
    <body onLoad="okay()"> 
    </body> 
</html> 

唯一的問題是,你需要的getElementById較低的情況下d