0

この質問は少しばかげているように見えます...しかし、インラインのjavascriptコードを別のjavascriptコードに挿入することは可能かどうか疑問に思っています。これを明確にしましょう:

私はグーグルプラスボタンを配置しようとしています、次のようにjqueryを介してそれを追加します:

jQuery('.gplus').append('<g:plusone annotation="inline"></g:plusone>');

このボタンを正しく機能させるには、外部jsが必要です。私がやろうとしているのは、これを行う外部jsを挿入することです。

var gplusjs = '
<script type="text/javascript">
  (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>';
jQuery('#js').append(gplusjs);

この結果、コードはHTMLとして出力されますが、スクリプトとしては解釈されません。これは可能ですか?私はばかげていますか?ありがとう!

4

2 に答える 2

5

これは、jQueryの追加とスクリプトが機能しないためです。昔ながらのやり方でやってください

var gplusjs = '(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);})();';
var script = document.createElement("script");
script.textContent = gplusjs;
document.head.appendChild(script);

また、JSには複数行の文字列リテラルが存在しないことに注意してください。

于 2012-01-10T23:47:00.817 に答える
3

そのコードを通常どおり実行する必要があります。

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);

または、さらに簡単:

$.getScript("https://apis.google.com/js/plusone.js");
于 2012-01-10T23:45:36.643 に答える