Javascript 执行插入.innerHTML的src脚本

Javascript 执行插入.innerHTML的src脚本,javascript,json,Javascript,Json,我在写博客。我有一个函数(showmusic,它使用json代码作为参数)来显示我的帖子,我这样调用它: <script src='/feeds/posts/default/-/Album/Pop?max-results=20&orderby=published&alt=json-in-script&callback=showmusic'></script> 这是不可能的,除非插入标记的脚本是在HTML中内联的,但是在这一点上,为什么不正常地将标

我在写博客。我有一个函数(showmusic,它使用json代码作为参数)来显示我的帖子,我这样调用它:

<script src='/feeds/posts/default/-/Album/Pop?max-results=20&orderby=published&alt=json-in-script&callback=showmusic'></script>

这是不可能的,除非插入标记的脚本是在HTML中内联的,但是在这一点上,为什么不正常地将标记插入其中呢

如果注入脚本作为引用加载,则不会执行注入脚本标记;当脚本运行以注入标记时,DOM已经加载,并且不会执行加载时不存在的任何脚本。

请尝试:

function myFunction( label1, label2 ) {
    var s = document.createElement( "script" );
    s.type = "text/javascript";
    s.async = true;
    s.src = "/feeds/posts/default/-/" + label1 + label2 + "?max-results=20&amp;orderby=published&amp;alt=json-in-script&amp;callback=showmusic";
    document.getElementById( "my-container" ).appendChild( s );
}  
我做了一个简单的测试。使用以下内容创建HTML页面:

<!DOCTYPE html>
<html>
    <head>
        <title>Test</title>
        <script type="text/javascript">
            function getJavascript() {
                var s = document.createElement( "script" );
                s.type = "text/javascript";
                s.async = true;
                s.src = "get_javascript.js";
                document.getElementById( "javascriptHolder" ).appendChild( s );
            }
        </script>
    </head>
    <body>
        <button type="button" onclick="getJavascript();">Get Javascript</button>
        <div id="javascriptHolder"></div>
    </body>
</html>  

当我点击按钮时,所有操作都像一个符咒。

你说的“使用.innerHTML执行相同的脚本”是什么意思?那么你想动态添加
标记吗?它已经起作用了吗?是否添加了标记但未执行?出于安全原因,这听起来像是绝对不允许的。“为此,我需要使用innerHTML插入该脚本,但该脚本不执行”
innerHTML
不执行插入的脚本。所以这不是解决问题的方法。
<!DOCTYPE html>
<html>
    <head>
        <title>Test</title>
        <script type="text/javascript">
            function getJavascript() {
                var s = document.createElement( "script" );
                s.type = "text/javascript";
                s.async = true;
                s.src = "get_javascript.js";
                document.getElementById( "javascriptHolder" ).appendChild( s );
            }
        </script>
    </head>
    <body>
        <button type="button" onclick="getJavascript();">Get Javascript</button>
        <div id="javascriptHolder"></div>
    </body>
</html>  
alert( 'I am from Javascript' );