2011-01-23 103 views
4

我有一個有點問題,在這裏,我甚至不知道是否有可能在所有返回腳本內容,這裏是我的兩難困境:有src屬性

我有這樣的腳本代碼:

<script id='script1' src='http://link.to.js'></script> 

在使用螢火蟲,我可以清楚地看到,該腳本蜂加載這些標籤之間,這樣

<script id='script1' src='http://link.to.js'> 
    function something(){ 
    alert('hi');} 
</script> 

我想要做的是,通過一個腳本的方式,讓這些標籤之間的內容,索姆就像

var x = document.getElementById('script1').innerHtml; 
document.getElementById('somedividhere').innerHtml = x; 

完美的工作當代碼已經是html的一部分,而不是從src加載時。

我一直在尋找這幾個小時,我還沒有發現任何線索,希望有人能幫助我在此。

+0

?你必須把它放在window.onload事件處理程序中。 – Marco 2011-01-23 06:51:33

回答

3

我認爲螢火蟲只能說明你是爲方便起見。如果你想從腳本中獲得代碼,你必須使用AJAX。

你可以做這樣的事情:

function ajaxFunction(){ 
    var ajaxRequest; // The variable that makes Ajax possible! 

    try{ 
     // Opera 8.0+, Firefox, Safari 
     ajaxRequest = new XMLHttpRequest(); 
    } catch (e){ 
     // Internet Explorer Browsers 
     try{ 
      ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (e) { 
      try{ 
       ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
      } catch (e){ 
       // Something went wrong 
       alert("Your browser broke!"); 
       return false; 
      } 
     } 
    } 
    // Create a function that will receive data sent from the server 
    ajaxRequest.onreadystatechange = function(){ 
     if(ajaxRequest.readyState == 4){ 
      var scriptcontent = ajaxRequest.responseText; 
      //Do something with the content 
     } 
    } 
    ajaxRequest.open("GET", document.getElementById('script1').src, true); 
    ajaxRequest.send(null); 
} 

就在幾個注意事項:

  1. 這將僅適用於網站上的位置腳本 工作由於 same origin policy
  2. 我把AJAX代碼this site 和修改它。
  3. 是後者的代碼執行時,這將是一個很大 更容易 jQuery
+1

RE#3:或道場或MooTools的或原型JS,或YUI,或任何其他JS庫稱職那裏:)另外,只是爲了確保它的明確的OP,這將主要涉及到要求爲同一編寫一段額外的時間,以便您可以通過直接使用它的方式獲取其內容。我認爲直接的方式是不可能的。 – 2011-01-23 07:03:29