バックボーンビューから新しいウィンドウを起動する必要があります。私のビューファイルはHTMLテンプレートを使用しています。バックボーンjsビューからwindow.openを使用する。ビュー機能への参照を失う
HTMLテンプレートは、このコードの塊を持っています
<a id="providerIcons">
<div style='display:inline-block; padding-right:30px;text-align: center;'><img width='110' height='110' src='app/assets/images/dropboxLogo.jpg' /><br/>DropBox</div>
</a>
マイビューファイルには、イベントのマッピングを設定しています
events: {
"click #providerIcons" : "onProvidersClick"
},
と私はonProvidersClickまた、ビューで定義されています:
onProvidersClick: function() {
var URL = "https://www.dropbox.com/1/oauth2/authorize?client_id=xyz&response_type=token&redirect_uri=http://localhost:9098/handleOauth.html";
**var oauthwindow = window.open(URL, "SignIn", "width=650,height=550,toolbar=0,scrollbars=0,status=0,resizable=0,location=0,menuBar=0");**
oauthwindow.focus();
return false;
},
このビューファイルでは、「saveToken」関数も定義されています。
ウィンドウが正常に起動します。ただし、oAuthプロセス(新しいウィンドウで起動)からのコールバック/リダイレクトがあり、oAuthフローの終了時にウィンドウに新しいHTMLファイルをポイントしてロードします。 window.opener.saveTokenがないことを、私はエラーを取得しています
var access_token = (window.location.hash||window.location.search).match(/access_token=([^&]+)/);
if(access_token){
// Save the first match
access_token = decodeURIComponent(access_token[1]);
**window.opener.saveToken(access_token);**
window.close();
}
:私のサーバー上に存在することを最終的なHTMLファイルには、新しいウィンドウを開いて、元の画面に戻ってaccess_tokenはOAuthの合格するためのスクリプトを持っています機能。 Viewファイルレベルで "saveToken" fxnを認識しません。
ビューのテンプレートであるHTMLに「saveToken」関数を定義すると、期待どおりに機能します。しかし、テンプレートファイルではなく、Viewファイルに関数が必要です。
大変感謝しています。
それはうまく動作します! – LWinni