返回具有src属性的脚本内容

时间:2011-01-23 06:46:33

标签: javascript

我在这里遇到了一些问题,我甚至不知道它是否可能,这是我的困境:

我有这个脚本代码:

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

使用firebug时,我可以清楚地看到脚本已经加载到这些标签之间,就像这样

<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加载时。

我一直在寻找这个好几个小时,我没有找到任何暗示,希望有人能帮助我。

1 个答案:

答案 0 :(得分:3)

我认为Firebug只是为了方便起见而向您展示。如果你想从脚本中获取代码,你将不得不使用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. 我从this site获取了ajax代码 并修改了它。
  3. 这将是很多 更容易 jQuery