JQuery мобильные URL-адреса добавить тег, который ломает формы в Internet Explorer - PullRequest
2 голосов
/ 16 марта 2012

Привет, ребята, моя проблема в том, что у меня есть мобильный сайт jquery со ссылками, как обычно, например,

<a href="http://mysite.com/login">Login</a> 

Теперь, когда они переходят на эту страницу в Firefox и т. Д., Она переходит на

http://mysite.com/#login

Затем браузер запускает и удаляет #, чтобы перейти к

http://mysite.com/login

Проблема в том, что в Internet Explorer этого не происходит, и он отображает (в данном случае) форму входа, но сообщение не хочет работать, а просто возвращается на домашнюю страницу, поэтому

http://mysite.com

Я слышал, как люди говорили, чтобы удалить ajax, чтобы исправить это, но разве это не решает реальную проблему?

Любая помощь будет отличной.

Если я уберу #, тогда магия все это работает. Просто чтобы ты знал.

Спасибо Ричард


Я использую jquery mobile, поэтому я включаю их в свой заголовок.

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />
        <script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>

Ответы [ 10 ]

7 голосов
/ 08 августа 2012

просто добавьте ниже код jquery в ваш макет (мастер), и вы получите ваш сайт, работающий в IE. Этот код получить форму тега. Если в вашем представлении нет тега формы, добавьте тег формы. и вижу чудо.

 <script type="text/javascript">
           $(document).ready(function () {
           if ($.browser.msie || $.browser.webkit) {

               $("a").attr("data-ajax", "false");
               $("a").attr("rel", "external");

               var a = $("form");
               if (a != null) {
                   $("form").first().attr("data-ajax", "false");
                   $("form").first().attr("rel", "external");
               }
           }
       });
   </script>
1 голос
/ 16 марта 2012

Когда вы переходите по этой ссылке в FireFox, она должна перейти на http://mysite.com/login

Если ваша ссылка не выглядела так:

<a href="http://mysite.com/#login">Login</a> 

В противном случае, она должна нормально работать во всех браузерах.

1 голос
/ 10 мая 2012

У меня была та же проблема, что форма, которую я создал на странице jQuery Mobile, работала во всех браузерах, кроме Internet Explorer. Добавление следующего исправило проблему для меня:

    <script>
        $(document).bind("mobileinit", function () {
            $.mobile.ajaxEnabled = false;
        });       
    </script>
0 голосов
/ 07 мая 2013

Это старый вопрос, но он был свеж для меня.Поэтому, возможно, кто-то также будет искать ответ: попробуйте добавить к ссылке (ссылка): rel = "external" или data-ajax = "false"

0 голосов
/ 08 августа 2012
$(document).ready(function () {
        if($.browser.msie || $.browser.webkit) {
            $(\'a\').attr(\'data-ajax\',\'false\');
        }

Это просто и низко - для меня это работает, но другой - намного лучше.

0 голосов
/ 27 марта 2012

Привет Просто подумайте немного нестандартно здесь - в основном у нас есть проблемы с т.е.Все остальные браузеры хороши, и ответы должны в основном использовать rel = "external", чтобы предотвратить включение ajax. Поэтому в любом случае правильным ответом будет просто использование небольшого стиля jquascript javery для изменения всех ссылок на странице, еслиЭто Windows Phone, чтобы использовать этот rel = "external", так как форма может быть где угодно, и попытка найти любые ссылки на страницу с формой будет просто раздражать и повлиять на все браузеры.Это небольшое признание поражения, которое я знаю, но пока кажется, что это единственное, что нужно сделать.

Есть ли какое-то решение сделать это?Спасибо за ваш вклад до сих пор.Ричард

0 голосов
/ 27 марта 2012

Вместо использования IE необходимо установить Windows Phone SDK , который включает в себя эмулятор Windows Phone.Мне любопытно, увидишь ли ты такое же поведение.

0 голосов
/ 27 марта 2012

Это поведение может иметь отношение к одной из нескольких ситуаций в JQM:

1) Перенаправления и ссылки на каталоги "При ссылке на индексы каталога (такие как href =" typesofcats / "вместо href ="typesofcats / index.html"), вы должны предоставить завершающую косую черту. Это потому, что jQuery Mobile предполагает, что раздел после последнего символа "/" в URL-адресе является именем файла, и удалит этот раздел при создании базовых URL-адресов, из которыхбудущие страницы будут ссылаться ".http://jquerymobile.com/test/docs/pages/page-links.html

2) При загрузке форм Ajax возникают проблемы в URL-адресах JQM, указывающих на формы, следует использовать rel = "external", чтобы предотвратить загрузку Ajax целевой страницы на текущей странице.Я всегда использую rel = "external" при связывании с формами.

3) Теги форм не распознают rel = "external" Чтобы предотвратить отправку формы Ajax через ajax, используйте target = "_ blank" или data-ajax ="false" https://github.com/jquery/jquery-mobile/issues/952

Кроме того, с jquerymobile.com/demos/1.0a3/#docs/api/globalconfig.html (я могу опубликовать только две ссылки).«ajaxEnabled (boolean, default: true): jQuery Mobile будет автоматически обрабатывать щелчки по ссылкам и отправлять формы через Ajax, когда это возможно. Если false, прослушивание URL-хеша также будет отключено, и URL-адреса будут загружаться как обычные запросы http.»

Использование всего вышеперечисленного может помочь вам найти решение.

0 голосов
/ 26 марта 2012

Как насчет, если вы используете абсолютный путь или корень родственника в теге действия. Я не уверен, что вы уже используете его, но, например:

<form action="/folder/anotherfolder/process.php" method="post">
....
</form>

Таким образом, мы надеемся, что не будет иметь значения, что у вас есть хеш-тег в вашем URL.

0 голосов
/ 20 марта 2012

Вы можете написать свой тег <a> следующим образом:

<a href="http://mysite.com/login" rel="external">Login</a> 

Но помните, что это уберет эффект перехода jquery mobile, он перенаправит на эту страницу.что это решит вашу проблему или нет.

...