2013-09-06 8 views
5

Im usnig History.js, чтобы нажимать URL-адрес, но в IE он добавляет имя страницы.History.js PushState в html 4 браузера (IE) неправильно изменяет URL-адрес

если мой оригинальный URL является: http://www.mydomain.com/Home.aspx

, а затем я выполнить следующее:

вар URL = window.location.protocol + '//' + window.location.host + «/ Home .aspx? id = 2 & pl = 4 '; History.pushState (NULL, NULL, URL)

В Chrome мой URL становится: http://www.mydomain.com/Home.aspx?id=2&pl=4

В IE 8 мой URL становится: http://www.mydomain.com/Home.aspx#Home.aspx?id=2&pl=4

Если я вставить URL IE 8 в хромового мой код не ...

Во-первых, как должен выглядеть правильный html 4 url, а во-вторых, как его исправить?

+0

Ваша проблема в том, что все после # НЕ отправляется на сервер. Поэтому mydomain.com/Home.aspx никогда не получит id и pl, которые после хеша. – patrick

+0

То, что вы получаете, предназначено, я использую на нашем клиентском сайте, и он ведет себя так же, как и вы, и он работает хорошо. URL-адрес с Hash также будет корректно работать в браузерах Chrome. –

ответ

0

Я считаю, что вы не подталкиваете состояние должным образом, попробуйте переформатировать URL-адрес, который вы нажимаете, например. History.pushState({data: 'home'}, null, '/Home/').

Возможно, вы подумали, что нажатие состояния также отправляет запрос на сервер, как вы делали там с запросом? Это не приятель.

Поэтому не ожидайте, что что-либо будет работать, вставив состояние u, введенное в другие браузеры. Во-первых, поскольку другие браузеры не имеют истории о вашем сайте, а во-вторых, вам нужно поймать событие statechange с помощью History.

например.

History.Adapter.bind(window, 'statechange', 
     function() { 
     if (History.getState().data.page === 'home') { 
      //do what u would like with current state 
     } 
    ); 
+0

Событие statechange не является проблемой. Это все работает. Если я нажимаю «/ Home /», а затем добавляю эту страницу, а затем перезагружаю страницу, она не будет работать, поскольку asp.net ожидает «.aspx» в конце дома ... Im запускает это на сайте Sharepoint. –

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

  • Нет связанных вопросов^_^