Невозможно установить правильную ссылку href в IE с адресом jquery - PullRequest
0 голосов
/ 02 сентября 2011

Используя адрес jquery, я устанавливаю ссылки на href следующим образом:

<a href="#view_profile=123">view 123</a>

При вызове события смены моего адреса:

$.address.change(function(e) {
   alert(e.value);
});

Я вижу значения FF и Chrome, как и ожидалось:

/view_profile=123

IE, однако, возвращает полный путь URL с предшествующим "/", например, так:

/http://localhost/#view_profile=123

Есть идеи, почему IE это делает и как лучше это исправить? Я пробовал несколько вещей, но каждый раз это одно и то же.

Вот код, который я использую для получения пути ссылки:

// Setup jQuery address on some elements
$('a').address();

// Run some code on initial load
$.address.init(function(e) {
  // Address details can be found in the event object
});

// Handle any URL change events
$.address.change(function(e) {
    alert(e.value);

    var urlAux = e.value.split('=');
    var page   = urlAux[0];
    var arg  = urlAux[1];

    alert("page: " + page);
    alert("arg: " + arg);

    if (page == "/view_profile") {
        ...
    }
});

Ответы [ 2 ]

1 голос
/ 07 сентября 2011

Я нашел работу вокруг.Если я добавлю тег класса к ссылке и найду событие щелчка в классе, я смогу установить URL-адрес, и он правильно вызовет событие изменения адреса jquery.

$(".testclass").click(function() {

    var id = null;
    if ($.browser.msie) {    
        id = $(this).attr('href').slice($(this).attr('href').indexOf('#')+1);
    } 
    else {    
        id = $(this).attr('href').substr(1);
    }

    alert("ID: " + id );

    location.href = "#view_profile=" + id; 
    return false;
});

Мне также пришлось установить значение hrefна ID вроде так:

<a href="#123" class="testclass">123</a>
0 голосов
/ 02 сентября 2011

попробуйте использовать $ (this) .prop ("href") для получения URL. он должен получить одинаковое значение во всех браузерах.

Редактировать: путь не работает в IE.

.. думаю, мне следовало провести больше тестов. путь не работает в IE. просто используйте "href"

...