2011-07-02 4 views
2

Googleのplusoneボタンをウェブサイトに追加するには、明示的な読み込みのために次のスクリプトタグを挿入します。IEのスクリプトタグのinnerHTMLを明示的にgoogle 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は私たちがスクリプトタグのinnerHTMLプロパティを記述することはできませんので、それはIEを除くすべてのブラウザですごい作品。誰の周りの任意の仕事? (私はjqueryのページに挿入されているので、あまりにもjqueryのを使用することができます。。)

答えて

5

は同じ問題に出くわしました。 IEでは スクリプトを使用する必要があります。 テキスト = '{"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' }; 
関連する問題