3

ユーザーがボタンをクリックして (Facebook ウォールに何かを投稿するために) ニュースフィード ダイアログをポップアップさせようとしています。認証済みのFacebookユーザーがすでにログインしています(laravel-oauth2パッケージとLaravel 4の組み込み認証システムを使用)。ただし、次のスクリプトを実行しても何も起こりません。

<script>
window.fbAsyncInit = function() {
    FB.init({
        appId      : 'APP_ID_HERE',
            status     : true,
            cookie     : true,
            oauth      : true
            xfbml      : true  
    });

    $( '.opener' ).click(function() {
        FB.ui({
            method: 'feed',
            link: 'http://example.com',
            name: 'NEWSFEED',
            caption: 'This is a test',
            description: {{$artist->stage_name}}

            });

      });
};

</script>

ボタン:

<a class="add-list-button opener" style="color: white; font:14px / 14px 'DINMedium','Helvetica Neue',Helvetica,Arial,sans-serif;">Play my city</a>

ボタンをクリックしても何も起こりません。私がここに持っているものに何か問題があると思いますか? 既に認証済みのユーザーを使用するより良い解決策がある場合は、お知らせください。ありがとうございました。

4

2 に答える 2

1

{{ $artist->stage_name }} は文字列を出力するため、説明の引用符が抜けています。

一重/二重引用符を追加すると、コードが機能するはずです (もちろん、クリック イベントが正しくバインドされている場合)。

<script>
window.fbAsyncInit = function() {
    FB.init({
        appId      : 'APP_ID_HERE',
            status     : true,
            cookie     : true,
            oauth      : true
            xfbml      : true  
    });

    // See changes below
    $(document).on('click', '.opener', function() {
        FB.ui({
            method: 'feed',
            link: 'http://example.com',
            name: 'NEWSFEED',
            caption: 'This is a test',
            description: '{{$artist->stage_name}}'

            });

      });
};

</script>
于 2013-07-11T11:03:15.173 に答える
1

$('.opener')リスナーを関数から関数に変更するとどうなります$.on()か?

<script>
window.fbAsyncInit = function() {
    FB.init({
        appId      : 'APP_ID_HERE',
            status     : true,
            cookie     : true,
            oauth      : true
            xfbml      : true  
    });

    // See changes below
    $(document).on('click', '.opener', function() {
        FB.ui({
            method: 'feed',
            link: 'http://example.com',
            name: 'NEWSFEED',
            caption: 'This is a test',
            description: {{$artist->stage_name}}

            });

      });
};

</script>
于 2013-07-09T18:54:15.927 に答える