这个问题看起来有点笨......但我想知道是否可以将内嵌的javascript代码插入到另一个javascript代码中。让我们说清楚:
我正在尝试添加一个google plus按钮,通过jquery添加它,如下所示:
jQuery('.gplus').append('<g:plusone annotation="inline"></g:plusone>');
此按钮需要外部j才能正常工作。我要做的是插入外部js:
var gplusjs = '
<script type="text/javascript">
(function() {var po = document.createElement("script");
po.type = "text/javascript"; po.async = true;
po.src = "https://apis.google.com/js/plusone.js";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(po, s);
})();
</script>';
jQuery('#js').append(gplusjs);
这样的结果是打印为HTML的代码,但不是解释为脚本。 这个有可能?我是个笨蛋?谢谢!
答案 0 :(得分:3)
您应该正常执行该代码:
var po = document.createElement("script");
po.type = "text/javascript"; po.async = true;
po.src = "https://apis.google.com/js/plusone.js";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(po, s);
或者,更简单:
$.getScript("https://apis.google.com/js/plusone.js");
答案 1 :(得分:3)
那是因为jQuery追加和脚本不起作用。用老式的方式做吧
var gplusjs = '(function() {var po = document.createElement("script");po.type = "text/javascript"; po.async = true;po.src = "https://apis.google.com/js/plusone.js";var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(po, s);})();';
var script = document.createElement("script");
script.textContent = gplusjs;
document.head.appendChild(script);
另请注意,JS中不存在多行字符串文字。