2011-01-23 111 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