2012-06-29 2 views
0

У меня есть страница со ссылкой на внутреннюю страницу, пожалуйста, найдите код ниже.window.location.hash возвращает пустую строку в событии pagecreate

<body> 
    <div id="serviceDetailsPage" data-role="page"> 

     <div data-role="header" data-position="fixed" data-tap-toggle="false" data-theme="e"> 
     </div> 

     <div data-role="content"> 

      <a class="loadAudio" data-role="button" data-mini="true" data-inline="true" href="#testPage">test</a> 

     </div>  

     <div data-role="footer" class="footerLinks" data-position="fixed"> 
     </div> 
    </div> 

    <div id="testPage" data-role="page"> 

     <div data-role="header" data-position="fixed" data-tap-toggle="false" data-theme="e"> 
     </div> 

     <div data-role="content"> 

      testPage 

     </div>  

     <div data-role="footer" class="footerLinks" data-position="fixed"> 
     </div> 
    </div> 

    <script> 
    $('#testPage').live('pagecreate',function(){ 
     console.log(window.location.hash);//returns an empty string 
     console.log(window.location.href);//returns old URL 
    }); 
    </script> 

    </body> 

Когда страница загружает URL является

../MyApp/index.html 

после нажатия на ссылку изменения URL в

../MyApp/index.html#testPage 

Im получая старый URL, когда я использую window.location.href, Я думал, что получаю обновленный URL.And window.location.hash возвращает пустую строку. Это потому, что я вызываю их при неправильном событии страницы?

+0

что об использовании 'window.location.pathname'? – F0G

+0

Моя первая мысль: не '#testPage' значение, которое вы ищете? Не могли бы вы объяснить, что вы используете для «pagecreate»? В документах я думаю, что он устарел http://jquerymobile.com/demos/1.1.0/docs/api/events.html –

+0

@PhillPafford его не то, что я хочу использовать 'pagecreate', я отправил еще один вопрос http: // stackoverflow.com/questions/11260792/get-param-value-from-a-url-in-jquery-mobile, с которым я пытаюсь получить ответ. Я знал, что это связано с событием «pagecreate», поэтому я разместил это question.Im пытается передать данные между страницами, могли бы вы предложить предложение рабочего решения? – manraj82

ответ

0

Вы получаете старый url, потому что вы проверяете pagecreate, когда вы еще не перешли к новому URL-адресу (тестовая страница создается до ее навигации). Если вам нужно было проверить на странице, вы получите правильное значение (но разные строки) с помощью обоих методов. Вы можете также использовать $ .mobile.activePage.attr ("ID"):

$(document).delegate('#testPage', 'pageshow',function(){ 
    console.log(window.location.hash); 
    console.log(window.location.href); 
    console.log($.mobile.activePage.attr("id")); 
});​ 

(я использовал .delegate вместо .live)

Смежные вопросы