0

この質問にはおそらく簡単な答えがあるのではないかと思いますが、男の子はそれを見つけるために無駄に努力しました!どんな助けでもいただければ幸いです。Facebookアプリはすべてうまくセットアップされており、アクションとオブジェクトは小さなJavaスクリプトでうまく機能します。しかし...アクションをトリガーするJavascriptのアラートダイアログを取り除くことで、サイトのフロー全体を合理化したいと思います。

これは私たちが今持っているものです(これは機能します):

<script type="text/javascript">
function postResonate_with_cambodia()
{
    FB.api('/me/onemandala:resonate_with' +
            '?intention=http://1mandala.org/1action-002','post ',
            function(response) {
            if (!response || response.error) {
            if (confirm('You are not yet signed up for 1Mandala. 1Mandala uses Facebook Connect to     showcase the amazing 1Actions folks are taking on our platform. We will redirect you now to the signup page...')) { window.location.href='http://www.1mandala.org/app-signup ' } else { void('') };;
            } else {
            if (confirm('You are resonating with the intention for 1SewingKit Cambodian Orphanage Empowerment. We will take you now to the project page to take action...')) {  window.location.href='http://1mandala.org/1action-002 ' } else { void('') };;
            }
            });
}
</script>

対話は、それがどのように機能することになっているのかをかなり明確にするはずです。しかし...これらのダイアログの代わりに、スクリプトが訪問者をFacebookサインアップダイアログに直接送信するか、ランディングページに送信した方がはるかに良いのではないでしょうか。これがうまくいかない私の試みです。:-(どんな提案でも大歓迎です。

<script type="text/javascript">
function postResonate_with_cambodia()
{
FB.api('/me/onemandala:resonate_with' +
'?intention=http://1mandala.org/1action-002','post',
function(response) {
if (!response || response.error)
{window.location.href='http://www.sign-up-page.com' } ;
} else {
{ window.location.href='http://1mandala.org/app-1action-002' } ;
}
});
}
</script>
4

1 に答える 1

1

簡単です。構文エラーが発生します。それが理由ですReferenceError: postResonate_with_cambodia is not definedが、構文の問題も報告されているはずです。

閉じブレースが多すぎます(または開始ブレースが少なすぎます)。また、else-bodyを2つのブロックでラップする必要はありません。1つで十分であり、ワンライナーの場合はそれも必要ありません。修正:

function postResonate_with_cambodia() {
    var url = '/me/onemandala:resonate_with?intention=http://1mandala.org/1action-002';
    FB.api(url, 'post', function(response) {
        if (!response || response.error) {
            window.location.href='http://www.sign-up-page.com';
        } else {
            window.location.href='http://1mandala.org/app-1action-002';
        }
    });
}

コードは常に適切にインデントしてください。また、ブロックの後ではなく、単一のステートメントの後にセミコロンを使用します。

于 2012-10-27T14:49:05.790 に答える