Проблема с 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, время: 21:51. |