2012-03-08 12 views
2

アムが動作していません。クロームでは、サウンドクラウドのポップアップが正しく表示され、サインインできます(sc-connect.htmlに戻る)が、ウィンドウは閉じません。より詳しく調べると、window.openerがnullなのでjavascriptエラーがあります。 localhost uriと関係があるのだろうか?上のリンクの例は、firefoxとchromeの両方で動作します。何か案は?以下の私のコード:JavascriptのSDK接続()関数は、クロム、ここで例の後に私のコードをモデル化しようとする

SC.initialize({client_id:'my_client_id', redirect_uri:'http://localhost:3000/sc-connect.html'}); 

$('button').click(function(){ 
    SC.connect(function() { 
    console.log('made it'); 
    } 
} 

マイSC-connect.htmlページには次のようになります。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html> 
    <head> 
     <title>Connect with SoundCloud</title> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
    </head> 
    <body onload="window.opener.setTimeout(window.opener.SC.connectCallback, 1)"> 
     <b style="width: 100%; text-align: center;">This popup should automatically close in a few seconds</b> 
    </body> 
    </html> 

は、このアプリのためてSoundcloudにURIをリダイレクト:http://localhost:3000/sc-connect.html

+0

okだから、上記のコードはfirefox、safari、およびchromiumでは動作しますが、chromeでは機能しません(拡張子なしのiicognitoでも)。異なる可能性があります。クロムとクロムの間 – jeffthink

答えて

3

これは実際にはChromeの奇妙なバグで、Chrome App StoreからSoundCloudアプリをインストールすることによって発生します。奇妙なことに、私は知っています。

window.openerの代わりに回避策を使用する場合は、oauthトークンをLocalStorageまたはSessionStorageにプッシュし、オープナーウィンドウにStorage eventを聞かせます。

+0

うわーを使用します - それは最も間違いなく問題です... chrome上のアプリケーションとしてアンインストールされたsoundcloud、そしてそれは今働きます! 私が見ていた問題を検証してくれてありがとう!現在ローカルストレージソリューションを実装しています - 提案のおかげで – jeffthink

+0

こんにちはJeffthink。あなたはこれに対する解決策を実装する運があったのですか? JSは私の強みではなく、あなた(または他の誰か)が提案された解決策を詳しく説明できるかどうか疑問に思っていました。ありがとう! – afxjzs

+0

@afxjzs localstorageやストレージイベントの使用に関する特定の問題がある場合は、あなた自身の質問をすることができます! – nickf

0

をあなたはカップルが欠落しているように見えますあなたのサンプルコードで括弧を閉じます。それ以外に、あなたの例には明らかに間違っているものはありません。私はコピー&ペースト、あなたのSC-connect.htmlをし、次でそれを使用する:

​​3210

これは、FirefoxとChromeで私のために動作します。それが役に立ったら教えてください。

+0

こんにちはポール - レスポンスありがとう、パレンが足りません(coffeescriptから翻訳されていました)...上の私のコメントを参照してくださいそれは基本的に他のすべてのブラウザで動作しています...試してみるためにクロムを変えようと思っています...どんな考えですか?その間に、ただfirefox – jeffthink

0
<!DOCTYPE html> <html lang="en"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <title>Connect with SoundCloud</title> 

</head> 
<body onload="window.opener.setTimeout(window.opener.SC.connectCallback, 1)"> 
    <b style="text-align: center;">This popup should automatically close in a few seconds</b> 
    <script type="text/javascript">window.opener.SC.connectCallback.call(this); </script> 
</body> 
</html> 
関連する問題