2012-01-10 54 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