2012-06-26 2 views
5

Я хочу загрузить содержимое страницы, находящейся в другой папке (например: «files/pages/example.html») для контейнера div, нажав на кнопку в jQuery Mobile!Загрузить страницу в div jQuery Mobile

Как это сделать?

<div data-role="page"> 
    <div id="container" data-role="content"><button id="clickButton">Click me!</button></div> 
</div> 
+0

У меня есть вопрос. Вы тестируете в браузере? если нет, добавили ли вы support.cors и разрешилиCrossDomainPages? – Th0rndike

ответ

1

$ .mobile.loadPage метод вам нужно. Он позволяет загружать внешний html-файл и вставлять его в dom. По умолчанию для этого метода нужно загрузить его как целую страницу, поэтому вам нужно указать параметры для загрузки в элемент dom. Это пример (и непроверенный) код:

$('#clickButton').on("click",function(){ 
    $.mobile.loadPage("theURLofThePage",{pageContainer: $('#container')}) 
}); 

сейчас, не забывайте о проблеме безопасности CrossDomain. Мне удалось сделать эту работу в Firefox, добавив:

$("#landingPage").live('pageinit', function() { 
      jQuery.support.cors = true; 
      $.mobile.allowCrossDomainPages=true; 
     }); 

Кроме того, страница, которую вы загружаете должны быть завернуты в данных ролей = странице ДИВ (скажем, она имеет идентификатор = «SecondPage»). После загрузки, запуска на данных ролей = странице с ид = SecondPage сНа:

$('#secondPage").trigger('pagecreate'); 
+0

Я уже пробовал, но не загружал страницу. –

+0

и что случилось? где код? какие ошибки вы получили? Это стандартный способ сделать это, если он не работает, в вашем коде была некоторая ошибка, но, конечно, я (и сообщество SO) не могу помочь вам, если вы не покажете нам, что вы пробовали, и какие проблемы, которые вы нашли на этом пути. – Th0rndike

+0

Прошу прощения. Я попробовал код, который я дал в начале сообщения, и ваш код jQuery для загрузки страницы (просто переместился с .on на .live и добавил ';' в конце функции loadPage). Нет ошибки (с использованием имитатора iOs) и ничего не делает! Я попытался сделать «alert ((« # container »). Html()) после функции loadPage, но в предупреждении сказано, что контейнер div # пуст (ничего не отображается в предупреждении). –

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