document.location не меняет веб-страницу в IE9? - PullRequest
4 голосов
/ 23 ноября 2011

Я пытаюсь перенаправить на другую страницу в IE9 (9.0.3).

Когда я пытаюсь получить / установить document.location, или document.location.href, или window.location / window.location.hrefЯ не могу этого сделать.Это не дает никаких ошибок.

Я пытался проверить, установлены ли объекты документа и окна, и они есть, поэтому я не знаю, почему объект местоположения "отсутствует".

Я пытался получить document.URL, и он отлично работает, но он доступен только для чтения.

Кто-нибудь знает, в чем проблема или как этого добиться кросс-браузерным способом?

Ответы [ 5 ]

9 голосов
/ 22 января 2012

Я также столкнулся с той же проблемой, но обнаружил, что добавление

window.event.returnValue = false;

над строкой в ​​javascript перед перенаправлением решило проблему.

1 голос
/ 23 ноября 2011

Возможно, ваш IE9 имеет некоторые ограничения безопасности, которые не позволяют JavaScript направлять URL-адреса. window.location.href = "" должен нормально работать на IE9.

1 голос
/ 23 ноября 2011

См. Это: http://social.msdn.microsoft.com/Forums/en/iewebdevelopment/thread/c864ae63-66f6-4656-bcae-86b0018d70c9

Очевидно, что это ошибка кэширования, которую можно устранить, добавив метку времени к целевому URL (то есть, используя каждый раз «уникальный» URL).

0 голосов
/ 05 января 2012

Вы должны использовать абсолютный URL:

var url = '/ section / page /';
var host = window.location.hostname;
window.location = 'http://' + host + url;

Где url - относительный путь к вашей странице.

0 голосов
/ 23 ноября 2011

Кеш может быть причиной, попробуйте:

location.href='something.php?tmp=' + Date.parse(new Date())

Надеюсь, это поможет

...