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

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

我已经找了好几个小时了,但我没有找到任何提示,希望有人能帮我解决这个问题。

最佳答案

我认为 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

关于javascript - 返回具有 src 属性的脚本内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4772653/

相关文章:

javascript - 为 React 属性分配初始值

javascript - 函数 rfrsh() 在放在外部 javascript 文件上时不起作用

javascript - 限制用户只能点击标签一次

javascript - 动态创建多个div结构

javascript - 从 jenkins 作业加载到 PHP

javascript - 检查输入是否被选中总是返回 true

javascript - 跨用户同步主干模型状态的最简单方法是什么? Node .js

Javascript - DropzoneJS,错误消息 block 链接以删除文件

javascript - 当剩余时间等于 X 时触发事件

javascript - 仅当有外支撑时才选择内支撑