2012-11-07 92 views
0

我有以下腳本和無腳本的JavaScript代碼:如何在運行時向頁面添加JavaScript代碼?

<script type="text/javascript" src="https://www.google.com/recaptcha/api/challenge?k=6LfWqtgSAAAAAP1KwYFYGt0wDeJFtxznmqyRH_Q5"> </script> 
    <noscript> 
     <iframe src="https://www.google.com/recaptcha/api/noscript?k=6LfWqtgSAAAAAP1KwYFYGt0wDeJFtxznmqyRH_Q5" 
      height="300" width="500" frameborder="0"></iframe> 
     <br> 
     <textarea name="recaptcha_challenge_field" rows="3" cols="40">  </textarea> 
     <input type="hidden" name="recaptcha_response_field" value="manual_challenge"> 
    </noscript> 

上述代碼應被添加到僅並且僅當JavaScript變量被從服務器設置的頁面體。

var shouldShow = true; 

     $document.ready(function() { 

      if (shouldShow) { 

       // add 
      } else { 

       // don't add 
      } 
     }); 

如何才能在運行時添加這些腳本?

感謝,

回答

1

可以是這樣做的:

var shouldShow = true; 
$document.ready(function() { 
     if (shouldShow) { 
      var newScript = document.createElement('script'); 
      newScript.type = 'text/javascript'; 
      newScript.src = 'https://www.google.com/recaptcha/api/challenge?k=6LfWqtgSAAAAAP1KwYFYGt0wDeJFtxznmqyRH_Q5'; 
      document.body.appendChild(newScript); 
     } else { ... } 

而且你可以自由地忽略無腳本。只有在沒有啓用JS的情況下才顯示,但在這種情況下,它將不會被添加。

但是,爲什麼不簡單地將它放在一些asp:panel,例如,並根據它是否應該顯示或將它的可見性設置爲真/假?如果某個asp.net元素具有elem.Visibility = false,那麼它不會發送到瀏覽器,與其所有內容相同。

相關問題