Я пытаюсь написать простое приложение, которое имеет несколько внутренних страниц. С #page2
я хочу вернуться к #page1
и перезагрузить его, чтобы содержимое, сгенерированное javascript, обновилось.
<body>
<div id="page1" data-role="page">
<script type="text/javascript">
//Javascript spits out something new every time
</script>
</div>
<div id="page2" data-role="page">
<a id="page1button" href="page1" data-role="button">go to page1</a>
</div>
</body>
Единственный способ сделать эту работу - добавить rel="external"
к #page1button
. Обновление контента, НО происходит внезапная перезагрузка страницы, которая не выглядит сексуально. Есть ли способ достичь тех же результатов, но все еще использовать переходы jqm?
Я знаю, что это популярный вопрос, и я провел много исследований, включая документацию jqm по изменению страниц , но, похоже, ничего из того, что я пробовал, не работает. У $.mobile.changePage()
, кажется, есть опция: reloadPage:true
, которая утверждает, что делает именно то, что мне нужно, но она не работает. Я даже пытался $.mobile.loadPage()
ДО .changePage()
и до сих пор не повезло. Помогите!
UPDATE:
Я почти уверен, что это не проблема с кэшированием, потому что вот как выглядит мой элемент страницы, и он ПОСТОЯННО показывает одну и ту же вещь * $ #% и каждый раз, когда я возвращаюсь на страницу:
<div id="page2" data-role="page" data-cache="never" data-dom-cache="false"> ...
Я думаю, что блок javascript вызывается только один раз при загрузке html-страницы, а не каждый раз, когда я возвращаюсь в этот div с помощью jqm. Возможно, способ решить эту проблему - найти способ заставить этот блок кода работать снова. Есть идеи?
UPDATE:
Хорошая новость: я нашел страницу, которая говорит об этой ТОЧНОЙ проблеме: http://jquerymobile.com/test/docs/pages/page-scripting.html
Плохие новости: то, что, как он утверждает, сработает ...
$( document ).delegate("#page1", "pageinit", function() {
alert('RE-RUN JAVASCRIPT');
});
... НЕ !! Я поместил эту функцию в начало моего HTML-файла, и она запускается только один раз.
UPDATE:
Все еще борется с этим. Я поместил здесь немного кода: http://dl.dropbox.com/u/28286159/index.html
Для простоты, я просто сделал две страницы, на одной из которых было напечатано <script>
: document.write(Math.random());
Вы увидите, что число не меняется.