Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.08.2008, 16:47
p0hil
 
Сообщений: n/a

Проблема с 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 просто ничего не делает. Подскажите, плз, в чем дело.
Ответить с цитированием
  #2 (permalink)  
Старый 04.08.2008, 17:01
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

<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>
Ответить с цитированием
  #3 (permalink)  
Старый 05.08.2008, 10:46
p0hil
 
Сообщений: n/a

Спасибо, помогло. Кстати непонятно почему, но в IE еще сработало location.href.
Ответить с цитированием
  #4 (permalink)  
Старый 05.08.2008, 14:38
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Странно, я всегда думал, что location это свойство объекта window.
Ответить с цитированием
  #5 (permalink)  
Старый 14.05.2010, 17:45
Новичок на форуме
Отправить личное сообщение для Takker Посмотреть профиль Найти все сообщения от Takker
 
Регистрация: 14.05.2010
Сообщений: 4

У меня похожая (наверное) проблема с этим:
<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 такое почему-то не работает. Наверняка на какой-нибудь глупости подсел, но вот уже весь день бьюсь над этой проблемой и не могу найти ошибки. Возможно, я что-то не принимаю в расчет?

Ред: в примере указываются конкретная сессия и последнее сообщение для наглядности. Но в логах апача подобного запроса нет и в помине.
Ответить с цитированием
  #6 (permalink)  
Старый 14.05.2010, 18:15
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Takker,

Сообщение от Андрей Параничев
Странно, я всегда думал, что location это свойство объекта window.
Ответить с цитированием
  #7 (permalink)  
Старый 14.05.2010, 21:27
Новичок на форуме
Отправить личное сообщение для Takker Посмотреть профиль Найти все сообщения от Takker
 
Регистрация: 14.05.2010
Сообщений: 4

Знания, говорят, страшная сила. И чем сильнее, то есть глубже вникаю в нюансы, тем более страшусь:
Цитата:
Не путайте объект location со свойством location объекта document. Вы не можете изменить значение свойства location (document.location), но вы можете изменить значение свойств объекта location (window.location.propertyName). document.location является строковым значением, которое обычно равно window.location.href, который устанавливается когда вы загружаете документ, но перенаправление может изменить его.
Как я понял... поправьте меня, если ошибаюсь - это очень важно для общего понимая BOM. Как я понял, "зеленый location" (выделенный зеленым) - это свойство window и одновременно "зеленый location" является сам объектом со своими свойствами и методами.

Примечание: что странно, конструкция из предыдущего поста работает на другом проекте (в том числе в браузере FF). Изменение свойства window.location.href так же работает в IE, но в FF все равно не работает.. и в чем загвоздка - понять не могу
Ответить с цитированием
  #8 (permalink)  
Старый 23.05.2010, 12:03
Новичок на форуме
Отправить личное сообщение для Takker Посмотреть профиль Найти все сообщения от Takker
 
Регистрация: 14.05.2010
Сообщений: 4

Так никто не подскажет, почему window.location.reload() может не работать в FireFox?
Ответить с цитированием
  #9 (permalink)  
Старый 23.05.2010, 13:50
Новичок на форуме
Отправить личное сообщение для Takker Посмотреть профиль Найти все сообщения от Takker
 
Регистрация: 14.05.2010
Сообщений: 4

Думаю, для полноты вопроса мне нужно описать картину вцелом. Итак, есть документ:
<!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 не хочет его кушать.. вернее, через пять секунд фрейм не обновляется
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема закрытия окна (window.close()) в Mozilla и FireFox Гость AJAX и COMET 4 06.11.2008 19:22
Проблема с document.location daniel20 Общие вопросы Javascript 7 19.09.2008 14:07
проблема с обработкой DIV nerik AJAX и COMET 2 22.08.2008 17:40
Проблема с маркером kostian02 Общие вопросы Javascript 0 23.06.2008 16:10
проблема с передачей русского текста в Prototype subaru Prototype & script.aculo.us 2 26.07.2007 16:56