是否可以将内嵌javascript代码插入另一个javascript / jquery代码?

时间:2012-01-10 23:44:21

标签: javascript jquery nested append inline-code

这个问题看起来有点笨......但我想知道是否可以将内嵌的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的代码,但不是解释为脚本。 这个有可能?我是个笨蛋?谢谢!

2 个答案:

答案 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中不存在多行字符串文字。