2012-01-10 56 views
0

这个问题看起来有点愚蠢......但我想知道是否可以将内嵌的JavaScript代码插入到另一个JavaScript代码中。让我们把这个明确的:是否可以将内嵌JavaScript代码插入到另一个javascript/jquery代码中?

我试图把谷歌加号按钮,通过jQuery的追加,如下所示:

jQuery('.gplus').append('<g:plusone annotation="inline"></g:plusone>'); 

这个按钮才能正常工作需要外部JS。我想要做的是插入外部JS这样做:

​​

这样做的结果是打印成HTML代码,但不能解释为脚本。 这可能吗?我是个笨蛋?谢谢!

回答

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"); 
2

这是因为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中。

+2

其实,你可以通过逃避每个新行与创建多行字符串字面一个'\' – SLaks 2012-01-10 23:48:04

+0

@SLaks这不是一个多行字符串常量,这是一个肮脏的黑客与逃逸的新行字符。 – Raynos 2012-01-10 23:48:46

+0

@SLaks作为一个进一步抛开它是无效的ES3,你碰巧知道ES5是否允许它? – Raynos 2012-01-10 23:54:20