JQuery получить перенаправленный URL - PullRequest
3 голосов
/ 27 июня 2011

Edit - не получил ответ, поэтому позвольте мне спросить это.Могу ли я это сделать?

<a href="http://m.facebook.com/...." target="_webapp">facebook button</a>

Позволить странице загрузиться поверх текущей страницы и прослушать имя window.location.hostname, прежде чем страница фактически перенаправится с помощью jquery?


URL сайта Facebook = http://www.mysite.com

В мобильном приложении вы можете использовать fb (YOUR_APP_ID): // авторизовать / запросить auth_token.

Используя jquery, как я могу поймать перенаправленныйURL до того, как страница перейдет на него?

т.е.

CALLBACK_URL = fb(YOUR_APP_ID)://authorize/
url = "https://m.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=CALLBACK_URL"
WebView.navigate(url)
WebView.execture_js('$(document).ready(function() {
    $("body").ajaxComplete(function(e, xhr, settings) {
        if (xhr.getResponseHeader("Location").hostname == "fb(YOUR_APP_ID)://authorize/"){
            alert(xhr.getResponseHeader("Location"));
            // and redirect back to action in my app...
        }
    });
});')

1 Ответ

0 голосов
/ 01 июля 2011

Если вы используете jQuery Mobile, обратите внимание на событие pagebeforeshow.

http://jquerymobile.com/demos/1.0b1/#/demos/1.0b1/docs/api/events.html

$('div').live('beforepageshow', function(event, ui) {
    var page = $(this).attr("id");
    if (page == 'mypage') {
        // your logic here
    }
});

Вы также можете попробовать добавить регистрацию обработчика ajaxComplete в обработчике дляСобытие mobileinit.

http://jquerymobile.com/demos/1.0b1/#/demos/1.0b1/docs/api/globalconfig.html

$(document).bind("mobileinit", function() {
  $("body").ajaxComplete(function(e, xhr, settings) {
       if (xhr.getResponseHeader("Location").hostname == "fb(YOUR_APP_ID)://authorize/"){
            alert(xhr.getResponseHeader("Location"));
            // and redirect back to action in my app...
        }
  });
});
...