2017-04-12 7 views
0

私は、サーバー側からの応答を得た後、いくつかのデータをFacebookに投稿しようとしています。ブラウザ(ブラウザ名)は、このサイト(facebook)がポップアップウィンドウを開くのを防ぎました。

例:message- 次の取得このメソッドを実行した後

function share_to_facebook(url){ 

    $.ajax({ 
    type: "POST", 
    url: "/create_data", 
    data: data, 
    success: function(result) { 
     if(result.success=="success"){ 
     // url contains the facebook url with some required parameters. 
     window.open(url, '_blank'); 
    } 
    } 
    }); 
} 

、「ブラウザ(ブラウザ名)がポップアップウィンドウを開いてからこのサイトを防ぐ」

をせずにFacebookページを開く方法このエラーが発生していますか?彼らはユーザーとの対話に直接を開けた場合は、デフォルトの設定では、現代のブラウザで

+0

なぜウィンドウを開く必要がありますか? – madalinivascu

+0

FacebookのURLを開いてFacebookの投稿を共有したい –

答えて

0

ポップアップブロッカーは唯一のポップアップが通過せ(最も頻繁にクリックを。)

しかし、非同期AJAX呼び出しのコールバック関数内

、その「直接」接続が失われます。ブラウザは以前のユーザーとのやりとりに接続していないので、ユーザーが要求しなかった「自動化された」ポップアップだと思ってブロックされます。

あなたがしようとすると開くポップアップウィンドウをあなたのAJAX要求の前に、空のページで/ URLとしてabout:blankを(share_to_facebookは、ユーザとの対話に直接呼び出されると仮定した場合)、その後、あなたのコールバックであなただけのポップアップに新しいURLを割り当てることができます窓。

function share_to_facebook(url){ 
    var myPopup = window.open('about:blank', '_blank'); 

    $.ajax({ 
    // ... 
    success: function(result) { 
     if(result.success=="success"){ 
     // url contains the facebook url with some required parameters. 
     myPopup.location.href = url; 
    } 
    } 
    }); 
} 
+0

返信いただきありがとうございます! しかし、ここではAJAXの応答が成功するとウィンドウを開く必要があります。 –

+0

直接することはできません。しかし、成功しなかった場合は、ポップアップをもう一度閉じることができます。 – CBroe

+0

お返事ありがとう –

関連する問題