我正在使用Blogger。我有一个函数(showmusic,它以json代码作为参数)显示我的帖子,我这样称呼它:
<script src='/feeds/posts/default/-/Album/Pop?max-results=20&orderby=published&alt=json-in-script&callback=showmusic'></script>
我正在寻找一种方法来更改带有<select>
标签的标签(“Album”和“Pop”),为此我需要使用innerHTML插入该脚本,但脚本不会执行:
function myFunction(label1,label2) {
var label1 += "/";
var label2 += "/";
var script = "\x3Cscript src='/feeds/posts/default/-/"+label1+label2+"?max-results=20&orderby=published&alt=json-in-script&callback=showmusic'>\x3C/script>"
document.getElementById("my-container").innerHTML = script;
}
答案 0 :(得分:1)
尝试一下:
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&orderby=published&alt=json-in-script&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>
并使用此文件get_javascript.js
:
alert( 'I am from Javascript' );
当我点击按钮时,一切都像魅力一样。
答案 1 :(得分:0)
除非插入标记的脚本在HTML中内嵌,否则这是不可能的,但此时,为什么不在那里插入标记呢?
如果注入脚本作为引用加载,则不会执行注入的脚本标记;当你的脚本运行时注入DOM已经加载的标记,并且不会执行加载时不存在的任何脚本。