2011-07-02 66 views
2

要在您的網站上添加Google plusone按鈕,將插入以下腳本標記(用於顯式加載)。更改IE中腳本標記的innerHTML以明確加載谷歌plusone按鈕

<script type="text/javascript" src="https://apis.google.com/js/plusone.js"> 
    {"parsetags": "explicit"} 
</script> 

它在HTML中看起來很直截了當。但是我不想使用JS文件插入腳本。所以我用下面的代碼:

var e = document.createElement('script'); 
e.src = "https://apis.google.com/js/plusone.js"; 
e.id = "googplusonescript"; 
e.innerHTML = '{"parsetags": "explicit"}'; 
document.getElementsByTagName("head")[0].appendChild(e); 

它可以在除了IE以外的瀏覽器相當真棒,因爲IE不允許我們寫腳本標記的innerHTML。任何工作都圍繞着任何人? (我的jQuery在網頁中插入這樣可以jQuery的使用太多。)

回答

5

在同樣的問題來了。 在IE下你應該使用 腳本。 text ='{「parsetags」:「explicit」}'; 代替script.innerHTML

+0

謝謝@Evresh – Nili

1

嘗試創建一個textNode並將其附加到腳本標記:

var myText = document.createTextNode('{"parsetags": "explicit"}'); 
myScriptTag.appendChild(myText); 
+0

不能在IE工作。 :( – Sharad

-1
var ispoloaded; 

function showpo() { 
var pohd = document.getElementsByTagName('head')[0]; 
var poscr = document.createElement('script'); 
poscr.type ='text/javascript'; 
poscr.async = true; 
poscr.text ='{"parsetags": "explicit"}'; //works on IE too 
poscr.src = "http://apis.google.com/js/plusone.js"; 
pohd.appendChild(poscr); 


ispoloaded = setInterval(function() { 


//check if plusone.js is loaded 
if(typeof gapi == 'object') { 
//break the checking interval if loaded 
clearInterval(ispoloaded); 
//render the button, if passed id does not exists it renders all plus one buttons on page 
gapi.plusone.go("idthatexists"); 
} 

}, 100); //checks every 0.1 second 



} 
0

嘗試以下操作:

window['___gcfg'] = { parsetags: 'explicit' };