Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   onload не работает после window.location (https://javascript.ru/forum/events/3113-onload-ne-rabotaet-posle-window-location.html)

rebel 19.03.2009 13:08

onload не работает после window.location
 
В mypage.php в body onload e меня определена функция:

<body onload="showVotes(1,78);">

 function showVotes(isShowing, band_id) {
 	/* 0 - show stars, 1 - show votes */
 	if (isShowing == 1) {
 		document.getElementById('votes' + band_id).style.display = 'block';
 		document.getElementById('stars' + band_id).style.display = 'none';
 	} else {
 		document.getElementById('votes' + band_id).style.display = 'none';
 		document.getElementById('stars' + band_id).style.display = 'block';
 	}
 }


Когда я загружаю mypage.php в стилях элементов votes78 и stars78 присутствуют "display: block" или "display: none;" Но когда я выполняю window.location(mypage.php?id=3) в onload страницы (я смотрю в исходном коде) все еще есть showVotes(1,78); , но у элементов votes78 и stars78 нету с стилях "display: block;" или "display: none;" У них в стилях вообще нету display. Почему так происходит и как это можно пофиксить?

Gvozd 19.03.2009 13:34

window.location вообще-то не функция.
к тому же если вы передаете в функцию строку, то ее надо соотвественно обрамлять в кавычки
правильный редирект будет выглядеть так:
window.location.href="mypage.php?id=3"

к тому же после редиректа onload прекрасно работает.сами попроьбуйте.
вставьте в неачале функции alert('!'), и убедитесь сами.
если же не сработает, то ошибка в чем-то другом у вас

rebel 19.03.2009 13:52

У меня страничка состоит из header.php и mypage.php. И перед <? include(header.php) ?> я устанавливаю $onload = 'onload = showVotes(1,78)' а потом в хедере использую так:
<body <?php echo $onload; ?>>
Я добавляю alert('!') в showVotes. Проблема в том что при загрузке функция вызывается, а после window.location - нет. А как это решить - не знаю. В гугле пока нчиего не нашлось.

Gvozd 19.03.2009 16:52

да быть такого не может.
создайте самую простую тестовую страницу.
никаких ПХП.
никаких лишник тегов.
и убедитсь.
а потом ищите в чем проблема.
либо дайте ссылку на ваше страницу, чтобы можно было посмотреть

rebel 20.03.2009 11:50

Да, действительно это была моя ошибка. Прошу прощения. После создания тестовой страницы все стало ясно. Спасибо.

Gvozd 20.03.2009 16:03

пожалуйста


Часовой пояс GMT +3, время: 22:06.