Бесконечный цикл - плагин Jquery (адрес)

Я использую текущий плагин jQuery (адрес), и у меня есть этот код (я использую метод "SEO" адресного плагина)

$(document).ready(function() {
    $.address.crawlable(1).state('/').init(function() {
        $('body').delegate('.ajax', 'click', function() {
            $('.ajax').address();
        });
        $('.ajax').address();
    }).change(function(e) {
        var loc = document.location.href;
        if (loc != 'http://secret.riseofkings.net' + e.value) {
            var myStr = e.value;
            myStr = myStr.substr(1);
            if (myStr) {

                $("#content").html('<img src="/images/ajax.gif" />');
                $("#iframe_space").html('<iframe src="http://riseofkings.net/nothing.php" style="display:none"></iframe>');
                var url = $(e).val().toLowerCase().substr(1).replace(/ /g, '%20');
                $("#content").load(url + '&ajax=1', function() {
                    $("#iframe_space").html('');
                }, function(errr) {
                    alert('Something went wrong. Sorry for problems');
                });
            }
        }
    });
});

ОБНОВИТЬ:

когда я пытаюсь добавить

alert(loc+' vs http://<?php echo $security->host()."'"; ?>+e.value);

после

if (loc != 'http://secret.riseofkings.net' + e.value) {

это дает мне http://secret.riseofkings.net/game.php против http://secret.riseofkings.net/ Когда я перехожу по ссылке (/game.php?what=map), появляется предупреждение http://secret.riseofkings.net/game.php против http://secret.riseofkings.net/game.php?what=map

КОНЕЦ;

ОБНОВЛЕНИЕ2:

это происходит, например, в Mozilla/5.0 (Windows; U; Windows NT 5.1; cs; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2

КОНЕЦ;

но в некоторых версиях Firefox (3.XX) и IE есть бесконечный цикл. Я посещаю главную страницу, и она начинает перезагружаться и добавлять #/game.php?r=something в конец адреса в адресной строке.

Разве ты не знаешь, что там не так?


person genesis    schedule 20.06.2011    source источник


Ответы (2)


Ну эта строчка:

clearTimeout = window.clearTimeout(timer);

неправильно и страшно; должно быть просто:

clearTimeout(timer);
person Pointy    schedule 20.06.2011
comment
вопрос обновлен новым кодом (полностью удалены setTimeout и clearTimeout) - person genesis; 20.06.2011

У меня была аналогичная проблема с адресом JQuery на моем сайте asp.net MVC. если я вернусь на страницу с URL-адресом хэша, он будет волноваться и бесконечно зацикливаться на странице. оказалось, что проблема была связана со старой версией файлов MicrosoftAjax.js и MicrosoftAjax.debug.js, которые входят в стандартную комплектацию mvc.

если вы откроете файл MicrosoftAjax.debug.js и увидите FileVersion: 4.0.20526.0 (это версия по умолчанию с шаблоном mvc), обновите отладочную и сжатую версии с cdn (http://www.asp.net/ajaxlibrary/CDNAjax4.ashx)

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

РЕДАКТИРОВАТЬ: Firefox 6 Бесконечное обновление страницы со страницей с хэш-тегами

person spaceman    schedule 06.02.2012