簡體   English   中英

更改 IE 中腳本標簽的 innerHTML 以顯式加載 google plusone 按鈕

[英]Changing innerHTML of script tags in IE for loading google plusone button explicitly

要在您的網站上添加 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 之外的所有瀏覽器中都非常棒,因為 IE 不允許我們編寫腳本標簽的 innerHTML。 任何工作圍繞任何人? (我在頁面中插入了 jquery。所以也可以使用 jquery。)

遇到了同樣的問題。 在 IE 下你應該使用腳本。 text = '{"parsetags": "explicit"}'; 而不是 script.innerHTML

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

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

嘗試以下操作:

window['___gcfg'] = { parsetags: 'explicit' };
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



}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM