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

Javascript 返回具有src属性的脚本内容,javascript,Javascript,我这里有点问题,我甚至不知道这是否可能,这是我的难题: 我有以下脚本代码: <script id='script1' src='http://link.to.js'></script> 当代码已经是html的一部分时,而不是从src加载代码时,这一点非常有效 我已经找了好几个小时了,还没有找到任何提示,希望有人能帮我。我想Firebug只是为了方便起见才告诉你的。如果要从脚本中获取代码,必须使用AJAX 你可以这样做: function ajaxFunction(){

我这里有点问题,我甚至不知道这是否可能,这是我的难题:

我有以下脚本代码:

<script id='script1' src='http://link.to.js'></script>
当代码已经是html的一部分时,而不是从src加载代码时,这一点非常有效


我已经找了好几个小时了,还没有找到任何提示,希望有人能帮我。

我想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);
}
请注意:

  • 这只适用于脚本 由于
  • 我从 并对其进行了修改
  • 这将是很多 更容易

  • 后一种代码何时执行?你必须把它放在window.onload event handler.RE#3:或Dojo,或MooTools,或Prototype JS,或YUI,或任何其他值得一试的JS库中:)另外,只是为了确保OP清楚,这基本上涉及到要求同一个脚本额外的时间,以便您可以直接使用它来获取其内容。我认为直接的方法是不可能的。@Ken Franqueiro:的确,但我使用的是jQuery,所以…:)我明白了,这是一个完美的解释,不能满足我的需求,但因为我想要的显然是无法实现的(跨域策略),这是一个完美的答案,谢谢!另外,出于好奇和更多信息,脚本不能加载到浏览器缓存中并从那里读取吗?它肯定会绕过policy@user524695:从理论上讲,浏览器可能会将其缓存到硬盘上的文件中,但我确信通过JavaScript阅读也会有类似的安全问题(假设你能找出a)当前浏览器缓存的文件夹;b) 文件的实际名称;c)如果浏览器以这种方式缓存内容。)我认为这不是一个可行的选择。
    var x = document.getElementById('script1').innerHtml;
    document.getElementById('somedividhere').innerHtml = x;
    
    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);
    }