Загрузка URL с параметрами через ajax в jQuery Mobile - PullRequest
1 голос
/ 29 сентября 2011

Проблема

Я не могу загрузить связанные страницы с параметрами через Ajax в jQuery mobile.Например: http://www.sampleurl.com/tool.dll?name=first&more=parameters

Подробности

Я использую jQuery Mobile 1.0b3

Я не имею в виду навигацию по страницам с помощью хэштегов,Я намерен загрузить другую веб-страницу (отдельный HTML-файл).Так что, насколько я знаю, не должно быть проблем с поиском JQM по связанному веб-сайту на текущей странице.

В некоторых случаях мне приходится ссылаться на DLL, которая возвращает HTML-документ в качестве ответа.К сожалению, я не могу получить доступ к этим страницам с помощью jQuery Mobile с помощью Ajax.

Для примера: я на следующем веб-сайте http://www.sampleurl.com/tool.dll?name=first&more=parameters

и хочу получить доступ к другому веб-сайту, например так:

<a href="/tool.dll?name=second&more=parameters"> Link </a>

Это не работает с включенным Ajax.Я должен форсировать non-ajax с атрибутом rel="external".Разве невозможно получить доступ к ссылкам с параметрами в JQM таким образом?Я хотел бы использовать встроенное уведомление о загрузке для страниц.Чего мне не хватает?

К сожалению, я не нашел решения в похожих вопросах.

Образцы кода

<!-- This is working, but will not get me a loading notification on mobile devices -->
<a rel="external" data-ajax="false" href="/tool.dll?name=this%20one&more=parameters">
    Link
</a>

<!-- This is not working -->
<a href="/tool.dll?&name=second&more=parameters">
    Link
</a>

<!-- Neither is this working -->
<a href="http://www.sampleurl.com/tool.dll?name=this%20one&more=parameters">
    Link
</a>

Новые идеи (правка)

По какой-то причине JQM застрял при загрузке страницы из-за этой строки на сайте:

<input type="date" name="date" id="date" value="" />

Проблема в атрибуте type="date"!С текстовым полем страница загружается нормально через ajax.

Сама страница работает нормально с jQuery Mobile.Ввод даты только предотвращает загрузку страницы через ajax.Я еще не нашел решение этой проблемы.Пустой атрибут значения не является проблемой.

Ответы [ 4 ]

2 голосов
/ 04 октября 2011

Объяснение

Эта проблема не связана с параметрами GET и запросом ajax. Проблема вызвана плагином datepicker для jQuery Mobile, когда он включен на целевую страницу.

Если вам нужно всегда включать скрипт, вам нужно отключить использование ajax через: rel="external" data-ajax="false"

Решение

Целевая страница

<!-- Do not include the datepicker script in the landing page -->
<div data-role="page" id="pg_1"> 
    <div data-role="header">
        <h1>Ajax page test with date input field</h1>
    </div>

    <div id="content_div" data-role="content">
        <p>
            <a data-role="button" href="loadme.html">To the calendar</a>
        </p>
    </div>
</div>

Страница календаря

<head>
    <!-- include datepicker only on the target page -->
    <!-- renamed and modified version of the datepicker experiment from JQM -->
    <script type="text/javascript" src="jquery.ui.datepicker.js"></script>
    <script type="text/javascript" src="jquery-mobile-calendar.js"></script>
</head> 
<body> 
    <div data-role="page" id="pg_2"> 
        <div data-role="header">
            <h1>Ajax page test with date input field</h1>
        </div>

        <div id="content_div" data-role="content">
            <p>
                <input type="date" name="date" value="" />
                <a data-role="button" href="index.html">Back</a>
            </p>
        </div>
    </div>
</body>
1 голос
/ 09 июня 2013

да, вы можете, но в 2 этапа: Сначала разделив ваш URL на две части, сначала до и до? а другая часть, которая является данными, которые идут после? и чтобы сделать это, вы должны использовать reg-выражение javascript, сделать некоторые исследования. Во-вторых, используя ajax в jquery mobile в части url (атрибута), вы поместите первую полученную часть, используя reg-выражение javascript, а вторую часть в части данных (атрибута)

0 голосов
/ 25 марта 2013

Я думаю, вы должны попробовать:

<a href="/tool.dll?name=second&more=parameters"> Link </a>

Без? & ... это должно сработать. HTML не распознает? & Как допустимый параметр.

0 голосов
/ 30 сентября 2011

вы пробовали с $ .mobile.loadPage?

документацию об этом методе вы можете найти здесь

jquerymobile api методы $ .mobile.loadPage

Итак, вы можете попробовать сделать что-то вроде этого:

<a href="#" onclick="loadNewContain();"> Link </a>

<script>
function loadNewContain()
{
$.mobile.loadPage('http://www.sampleurl.com/tool.dll?&name=first&more=parameters');
}
</script>

:)

...