Cordova & jquery: значение, отправленное на другую статическую html-страницу

Я делаю веб-приложение ios с помощью Cordova и JQuery. Я создаю index.html, который имеет 3-х рядное представление списка. при щелчке строки страница изменится на другую page.html. Согласно щелкнутой строке, JS будет запрашивать данные с сервера и обновлять page.html. Теперь мой вопрос - это наилучшая практика его реализации? Я имею в виду, что это обычный стиль, чтобы сделать это, поскольку я свежий для интерфейсного. В настоящее время я добавляю якорь в index.html:

<li><a href="page.html">A Header Bars</a></li>

Однако я встречаю проблемы:

  • Я не знаю, как получить информацию о нажатой строке в файле page.html
  • В page.html, как я могу начать запрос на выборку данных? В page.html пишу:

    $(document).ready(function()
    {
        console.log("test");
        document.write("page test");
    })
    

Но он не вызывается.

Спасибо.

Ответ 1

Если вы хотите получить значение с одной страницы на другую, у вас есть несколько вариантов (одни и те же правила применяются для одного jQM html с несколькими страницами и для проекта jQM, построенного вокруг нескольких html файлов):

я. На второй странице используйте pagebeforeshow и получите все необходимые данные через объект данных. Допустим, у вас есть 2 html файла, первый html имеет идентификатор "page1", а второй имеет идентификатор "page2" ), например:

$('#page2').live('pagebeforeshow', function (e, data) {
    alert(data.prevPage.find('div[data-role="content"]').attr('id'));
});

II. Второй вариант - создать общий объект, который будет использоваться в качестве хранилища данных:

var storeObject = {
    someValue : '1',
    anotherValue : '2'
}

Это самое простое решение, но оно будет работать только при активной загрузке страницы ajax.

III. Вы можете передавать значения с помощью changePage:

$.mobile.changePage('page2.html', { dataUrl : "page2.html?paremeter=123", data : { 'paremeter' : '123' }, reloadPage : true, changeHash : true });

и прочитайте их следующим образом:

$('#page2').live('pagebeforeshow', function (e, data) {
    var paremeter = $(this).data("url").split("?")[1];;
    paremeter = paremeter.replace("paremeter=","");   
    alert(paremeter);
});

Подробнее

Если вы хотите узнать больше об этой теме, посмотрите на статью. Вы найдете несколько решений с примерами.

Ответ 3

fooobar.com/info/28092/... отвечает на это хорошо. Для cordova + wp8 опция с LocalStorage проста в реализации.