[英]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.