Проблема с document.location
IE 6.0 не хочет переходить по document.location.href. Вот код:
<html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <title></title> </head> <script type="text/javascript" language="JavaScript"> function go2Page(url) { document.location.href = url; } </script> <body> <a href='javascript:void(0);' onclick='go2Page("http://www.e1.ru")l'>1</a> </body> </html> Все остальные браузеры переходят на http://www.e1.ru, а IE просто ничего не делает. Подскажите, плз, в чем дело. |
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<title></title>
</head>
<script type="text/javascript" language="JavaScript">
function go2Page(url) {
document.location.href = url;
return false;
}
</script>
<body>
<a href='#' onclick='return go2Page("http://www.e1.ru");'>1</a>
</body>
</html>
|
Спасибо, помогло. Кстати непонятно почему, но в IE еще сработало location.href.
|
Странно, я всегда думал, что location это свойство объекта window.
|
У меня похожая (наверное) проблема с этим:
<script language="javascript">
function up(){
scroll(1,10000000);
}
window.parent.voc_js_main.window.up();
window.setTimeout('document.location.href="js_writer.php?session=a364b7fd9eae0f19c1dd87f5105498c8&last_message=45"',5000);
</script>
(простенький чат) В FireFox такое почему-то не работает. Наверняка на какой-нибудь глупости подсел, но вот уже весь день бьюсь над этой проблемой и не могу найти ошибки. Возможно, я что-то не принимаю в расчет? Ред: в примере указываются конкретная сессия и последнее сообщение для наглядности. Но в логах апача подобного запроса нет и в помине. |
Takker,
Цитата:
|
Знания, говорят, страшная сила. И чем сильнее, то есть глубже вникаю в нюансы, тем более страшусь:
Цитата:
Примечание: что странно, конструкция из предыдущего поста работает на другом проекте (в том числе в браузере FF). Изменение свойства window.location.href так же работает в IE, но в FF все равно не работает.. и в чем загвоздка - понять не могу :( |
Так никто не подскажет, почему window.location.reload() может не работать в FireFox?
|
Думаю, для полноты вопроса мне нужно описать картину вцелом. Итак, есть документ:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title></title> </head> <frameset rows="*,0" frameborder="no" framespacing="0" border="0" borderwidth="0"> <frame src="js_main.php?session=94001bb0033e5783bcfab9c7a9a76dd9" noresize scrolling="auto" marginwidth="0" marginheight="0" id="js_main" name="js_main"> <frame src="js_writer.php?session=94001bb0033e5783bcfab9c7a9a76dd9" noresize scrolling="no" marginwidth="0" marginheight="0"> </frameset> </html> параметр session конечно же приходит извне, проверяется в php и вставляется в src фреймов. Фрейм js_main пуст. Основная работа происходит в невидимом для юзера фрейме js_writer. В нем генерируется следующий код для двух случаев. Первый, если через GET передается только сессия:
<html>
<body>
<script type="text/javascript">
with (parent.js_main.document){
open();
write('<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n');
write('<html>\n');
write('<head>\n');
write(' <title></title>\n');
write(' <meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\">\n');
write('<script language=\"javascript\">\n');
write('function up()\n');
write('{\n');
write(' scroll(1,10000000);\n');
write('}\n');
write('<'+'/script>\n');
write('</head>\n');
write('<body>\n');
write('line:211 some text <br />');
write('line:212 some text <br />');
write('line:213 some text <br />');
write('line:214 some text <br />');
}
parent.js_main.window.up();
setTimeout('location.replace("js_writer.php?session=94001bb0033e5783bcfab9c7a9a76dd9&last_message=214")',5000);
</script>
</body>
</html>
второй случай возникает только после срабатывания первого (либо после срабатывания самого себя). Когда через GET передается дополнительный параметр last_message
<html>
<body>
<script type="text/javascript">
with (parent.js_main.document){
write('line:215 some text <br />');
write('line:216 some text <br />');
}
parent.js_main.window.up();
setTimeout('location.replace("js_writer.php?session=94001bb0033e5783bcfab9c7a9a76dd9&last_message=216")',5000);
</script>
</body>
</html>
Значение строк line генерируется в php - его трогать не будем, так как не работает показанный выше сгенерированный javascript. Как вы поняли - это незамысловатая реализация чата с обновлением раз в 5 секунд. И самое интересное, что в Internet Explorer этот код срабатывает, а вот FireFox не хочет его кушать.. вернее, через пять секунд фрейм не обновляется |
| Часовой пояс GMT +3, время: 17:08. |