Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Несколько операторов в onClick (https://javascript.ru/forum/misc/3489-neskolko-operatorov-v-onclick.html)

sergeimi 26.04.2009 21:33

Несколько операторов в onClick
 
Здравствуйте!
Есть ли возможность использовать несколько операторов в onclick ?
Суть в том, что бы при клике на кнопку страница сначала обнавлялась, а потом выводилась на печать.
Благодарю за помощь.

Gvozd 26.04.2009 23:42

можно.
вам благословление нужно, для того чтобы потратить полминуты своего времени, и составить простейший документ для проверки этого факта?

sergeimi 27.04.2009 08:18

Цитата:

Сообщение от Gvozd (Сообщение 17660)
можно.
вам благословление нужно, для того чтобы потратить полминуты своего времени, и составить простейший документ для проверки этого факта?

Если можно, напишите как это будет выглядеть. Я знаю, что по отдельности onclick="javascript: location.reload(true)" - обновляет страницу, а "window.print();" - выводит на печать. Нужно, чтобы после клика на кнопку, страница обнавлялась и затем выводилась на печать.

Gvozd 27.04.2009 08:42

вот так выглядит возможность объединения двух алертов внутри обработчика
<html>
<head>
<title>тест</title>
<script type="text/javascript">
function qwe()
	{
	alert(1);
	alert(2);
	}
</script> 
</head>
<body>
<span onclick="alert(1);alert(2);" style="text-decoration:underline">кликни</span>
<span onclick="qwe();" style="text-decoration:underline">кликни</span>
</body>
</html>

в первом случае они прямо в нем и объеденены.
во втором во внешней функции.
я немного невнимательно сперва прочитал ваш пост
в том, что вы хотите сделать есть сложность:после того, как страница перезагрузится JS перестает выполнятся, и таким образом блок о печати уже не будет выплнен.
в зависимости от реализации возможен еще вариант, когда сперва будет выполнена печать, независимо от порядка следования команд.но в этом факте я не уверен
в вашем случае, я бы посоветовал загрузить страницу в скрытый фрейм, и уже оттуда еее распечатывать.
либо всю страницу обернуть внутри фрейма, и выполнять код из оболочки.не уверен, что корректно получится.
PS
Цитата:

Сообщение от sergeimi
onclick="javascript: location.reload(true)"

тут не нужен псевдо-протокол javascript:

Riim 27.04.2009 09:08

Что если в cookie установить флаг для перезагруженной страницы о том, что она должна распечататься? И распечатавшись сразу его (флаг) затрет.
upd: Кстати, я запустил onclick="location.reload(true); window.print();" и print сработал.

Gvozd 27.04.2009 09:23

Riim,
для новой или старой страницы?
для осла, подозреваю?
основываясь на моих знаниях, я без теста во всех браузерах и получаса у гугле, не ручаюсь, что данная конструкция перезагрузит страницу и распечатает именно новую страницу
а мне щаз влом)

Riim 27.04.2009 09:53

Цитата:

Сообщение от Gvozd
для новой или старой страницы?

На старой добавляем, а на новой в onload считываем. Если есть то распечатываем.

Gvozd 27.04.2009 10:35

я имел в виду, как у тебя код сработал.
про кукисы-то мне понятно

Riim 27.04.2009 10:37

Цитата:

Сообщение от Gvozd
я имел в виду, как у тебя код сработал.

Такое ощущение что location.reload вообще не было.

Gvozd 27.04.2009 11:23

именно.
я об этом и догадывался.
когда-то давно, на форуме поднимался топик, по ходу которого выяснилось, что в пределах одного блока переходы, допустим не обрабатываются
window.location='123.htm';
while(true);

переход не будет осуществлен, пока вы не остановите страницу, либо вам не выскочит окно Скрипт занят или не отвечает.остановить его?


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