2012-05-04 7 views
0

Googleのプラスコードをこのように置く理由は、IE8やその他のバージョンではうまくいきません。しかし、ファイヤーフォックスでうまく動作します。IE8のJavaScript奇妙さdocument.write問題

ライブデモ:http://jsfiddle.net/9zqsZ/

<script> 

var socialString = '<g:plusone size="tall"></g:plusone>'; 
document.write(socialString); 

    //google plus share button 
    (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); 
    })(); 

</script> 

私は外部ファイルにそれを置くしようとしています。変わったことは、document.writeでうまく動作せず、htmlに直接置かれている場合に動作することです。その場合、どのように実装するのですか?

答えて

1

あなたは何かのように行うことができます:

<script> 
    if (navigator.appVersion.indexOf("MSIE") != -1) { 
     var socialString = '<g:plusone size="tall"></g:plusone>'; 
     var newEle = document.createElement(socialString); 
     document.body.appendChild(newEle); 
    } 
    else { 
     var socialString = '<g:plusone size="tall"></g:plusone>'; 
     document.write(socialString); 
    } 

    //google plus share button 
    (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); 
    })(); 
</script> 
+0

マイコンソールがあなたのコード – devjs11

+0

thatsの奇妙な「文字列は無効な文字が含まれている」を入れてエラーを返し、それはIE8で私のために働いたとすることができるいくつかの余分な文字が追加されましたしばらくコードをコピーした後、plsが一度 –

+0

okがうまくいけば、編集された答えを確認してください。 –