-1

サイトの Facebook ユーザーが Facebook でのアプリケーションを許可していない場合に、コンテンツ ロッカーとして機能するポップアップをサイトに作成しようとしています。ポップアップ用のコードは、それ自体で適切に機能するため、よく書かれていると思います。ユーザーがログインしているかどうかを確認する Facebook コードも、独立して適切に動作します。Facebook JavaScript と DIV を組み合わせるのに問題があります。ポップアップの DIV を自分のelseまたはステートメント内に配置しようとするまで、ポップアップは機能しelse ifます。

これらの div を JavaScriptelse ifelseステートメントの中に入れることはできますか? 次の DIV は、ステートメント内に入れようとしているものです。

<div class="overlay"><div class="overlay-content"></div></div>

また、divを中に入れて表示しようとしましたdocument.writeが、役に立ちません。

私のコードはここにあります、またはそこから貼り付けます:

FB.getLoginStatus(function(response) {
if (response.status === 'connected'){
    document.write("Looks like you're logged into Facebook and our app :)");
    // the user is logged in and connected to your
    // app, and response.authResponse supplies
    // the user’s ID, a valid access token, a signed
    // request, and the time the access token 
    // and signed request each expire
    var uid = response.authResponse.userID;
    var accessToken = response.authResponse.accessToken;
} 
else if (response.status === 'not_authorized'){
    <div class="overlay"><div class="overlay-content"></div></div>
    // the user is logged in to Facebook, 
    //but not connected to the app
}
else{
    <div class="overlay"><div class="overlay-content"></div></div> 
    // the user isn't even logged in to Facebook.
}
});
</script>
4

1 に答える 1

0

私のポップアップは、ポップアップのDIVをelseまたはelse ifステートメント内に配置しようとするまで機能します。

これは、JS と HTML コードを混在させているだけであり、そのような方法では不可能だからです。(これらがどのように機能するかについての基本的な知識を取得してください。その試みはその基本的な知識の明らかな欠如を示しているからです!)

また、div を document.write の中に入れて表示しようとしましたが、どちらも役に立ちません。

それも有望なアプローチではありません。ドキュメントの最初のレンダリング後に呼び出される document.write は、現在のドキュメントを置き換えます。したがって、これもあなたが望むものではありません。

解決策は非常に簡単です。いつでも、HTML コードに DIV 要素をオーバーレイすることができます。次に、ログインを確認した後、スタイルを display:none に設定して (直接またはクラスを操作するなどして) 非表示にするか、DOM から完全に削除します。

繰り返しになりますが、使用したいテクニックについての基本的な知識を習得してください。

于 2012-08-07T08:51:04.197 に答える