-3

JQuery スクリプトに「予期しない識別子」があるようですが、どこにあるのかわかりません...

var click = "window.open(
            'https://www.facebook.com/sharer/sharer.php?u='+encodeURIComponent(location.href)',
            'facebook-share-dialog',
            'width=626,height=436');
        return false;";
var facebookshare = '<a href="#" onclick="' + click + '"><img src="http://w.sharethis.com/images/facebook_counter.png" /></a>';
$('<div class="facebook">' + facebookshare + '</div>').insertAfter('.easy_social-widget-twitter');

純粋な HTML で同じコードを使用すると、うまくいきますか? この JQuery スクリプトで使用しないのはなぜですか?

StackOverflow の他のケースは、閉じられていない関数 (またはその他のもの) を示していますが、そうではありません。このスニペットを次のように置き換えるとalert("check");、適切なアラートが表示されます!

4

1 に答える 1

2

複数行の文字列リテラル\を作成する必要がなく、そこにあってはならない引用符があります。

click文字列宣言を次のように変更します

var click = "window.open(\
            'https://www.facebook.com/sharer/sharer.php?u='+encodeURIComponent(location.href)',\
            'facebook-share-dialog',\
            'width=626,height=436');\
        return false;";

しかし、このようなコードをインライン化するべきではありません。問題を探しているだけです。jQuery のon関数を使用して、イベント ハンドラーを設定します。JS で JS コードを生成するべきではありません (まあ、ほとんどありませんが、十分な経験を積むまでは「決して」とは見なさないでください)。

于 2013-07-23T09:00:17.437 に答える