Страница 1 из 2

JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-15 22:18:31
Alex Keda
все примеры взяты с сайта - пример конкретной страницы - http://www.lissyara.su/?id=1046
Итак, имеем такой вызов для открытия нового окна:

Код: Выделить всё

<a href="images/upload_images/2005-10-25/48c50c665bb32ec8f5336739642d9f4c.jpg" onclick="open_photo_48c50c665bb32ec8f5336739642d9f4c(); return false">
и такой скрипт для учёта кликов по объявлениям директа:
http://www.lissyara.su/scripts/direct_monitor.js
мои камменты в скрите указывают на место проблемы:

Код: Выделить всё

if (obj.href.indexOf('.yandex.ru/count')==-1) return true;
итак. в ссылке - фалзе, требуемое для того чтобы открывалось тока в новом окне, а в скрите - труе.
при включении обоих имеем в ослике такую ситуацию, что при клике по фотке открывается она в новом окне, и на заднем плане на сайте =(
если поменять в скрипте труе на фалзе - перестают работать вообще все ссылки =)
ктонит в js шарит настолько чтобы объяснить - чё происходит и чё мона пофиксить.
у меня знания кончились =(

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-15 23:27:52
BlackCat
Попробуйте убрать вообще ссылку внутри которой находиться картинка, а тег самой картинки исправить вот так:

Код: Выделить всё

<img
style="border: 1px solid White; cursor: pointer;"
src="path/file.jpg"
border="0"
alt="Alt param data"
title="Title param text"
width="300"
onClick="open_photo_48c50c665bb32ec8f5336739642d9f4c();">
Т.е. событие onClick перенести в тег картинки. В style добавлен параметр, что бы сохранялось изменение курсора со стрелки на руку, при наведении на картинку.
=====
Есть вариант исправить ссылку вот так,

Код: Выделить всё

<a href="#" onclick="open_photo_48c50c665bb32ec8f5336739642d9f4c(); return false">
но браузер может перезагрузить всю страницу.

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-15 23:38:36
BlackCat
Поторопился немного, второй вариат работает нормально и страницу не перегружает.

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-16 1:46:54
Alex Keda
это я и так догадался =)
однако, на сайте половина посетителей без явы =)
хотелось бы оставить им возможность увидеть полную картинку =)
первый завтра попробую.

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-16 2:08:25
BlackCat
Для посетителей без явы можно добавить картинку вместе со ссылкой через <noscript></noscript>, а скриптом отрисовывать только картинку.
=====
Если посетитель со включенными скриптами, можно присвоить тегу <a> идентификатор (напр. имя картинки): <a href="img_file" id="link_id">, а потом скриптом заменять содержимое href на "#", по идентификатору.

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-16 2:21:51
Alex Keda
мдя...
сложные решения какие-то...
существующее было куда проще и без нареканий работало больше трёх лет =(

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-16 2:40:01
BlackCat
Самый простой вариант - забить на пользователей с IE и не делать ничего :-) FF && Opera нормально реагируют и не пытаются по ссылке перейти. Или грядет портирование 7 Ишака в никсы :-)

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-16 8:52:33
zg
BlackCat писал(а):Самый простой вариант - забить на пользователей с IE
не самая лучшая идея :wink:

проще всего не париться, а генерить ссылки одни для тех у кого всключён ява-скрипт, и ссылки без ява-скрипта, к примеру

Код: Выделить всё

<script language="javascript">
document.writeln('<a href="javascript:open_photo_48c50c665bb32ec8f5336739642d9f4c()">blabla</a>');
</script>

<noscript>
<a href="images/upload_images/2005-10-25/48c50c665bb32ec8f5336739642d9f4c.jpg">blabla</a>
</noscript>
этот код будет работать во всех браузерах как с ява-скриптом так без него

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-16 11:53:06
Alex Keda
чё-то опять не так.
на основном окне показывает фалзе =)))
можно на сайте по ссылке код глянуть =)

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-16 13:32:36
zg
lissyara писал(а):чё-то опять не так.
на основном окне показывает фалзе =)))
можно на сайте по ссылке код глянуть =)
Лис, а при чём тут ЯД? у тебя на каждую картинку своя функция пишется

Код: Выделить всё

		<script type="text/javascript">
			function open_photo_48c50c665bb32ec8f5336739642d9f4c(){
			var vphoto = window.open("","Bigphoto","copyhistory=0,directories=0,width=660,height=580");
			vphoto.document.write("<HTML>\n");
			vphoto.document.write("<HEAD>\n");
			vphoto.document.write("<TITLE>Видеокарта NVidia FX5600-XT - видны вздувшиеся конденсаторы (вздулись, они, кстати, не так уж и сильно - а работать уже отказалась :))</TITLE>\n");
			vphoto.document.write("<META NAME=\"keywords\" CONTENT=\"Видеокарта NVidia FX5600-XT - видны вздувшиеся конденсаторы (вздулись, они, кстати, не так уж и сильно - а работать уже отказалась :))\">\n");
			vphoto.document.write("<META NAME=\"description\" CONTENT=\"Видеокарта NVidia FX5600-XT - видны вздувшиеся конденсаторы (вздулись, они, кстати, не так уж и сильно - а работать уже отказалась :))\">\n");
			vphoto.document.write("<META http-equiv=\"Content-Type\" content=\"text/html;charset=windows-1251\">\n");
			vphoto.document.write("</HEAD>\n");
			vphoto.document.write("<BODY>\n");
			vphoto.document.write("<div align=center>\n");
			vphoto.document.write("<CODE><b>Видеокарта NVidia FX5600-XT - видны вздувшиеся конденсаторы (вздулись, они, кстати, не так уж и сильно - а работать уже отказалась :))</b></CODE>\n");
			vphoto.document.write("<br>\n<br>\n");
			vphoto.document.write("<div style=\"height:480; width:640;\">\n");
			vphoto.document.write("<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n");
			vphoto.document.write("\t<tr>\n");
			vphoto.document.write("\t\t<td align=\"center\" style=\"border: 1px solid #707680;\">");
			vphoto.document.write("<a href=\"javascript:window.close();\" title=\"Кликните, чтобы закрыть\">");
			vphoto.document.write("<img style=\"border: 1px solid White;\" src=\"images/upload_images/2005-10-25/48c50c665bb32ec8f5336739642d9f4c.jpg\" border=\"0\">");
			vphoto.document.write("</a>");
			vphoto.document.write("</td>\n\t</tr>\n</table>\n");
			vphoto.document.write("</div>\n");
			vphoto.document.write("</div>\n");
			vphoto.focus();
			vphoto.document.close();
			return false;
			}
а в конце до кучи ещё и return false стоит, вот этот false тебе и показывается, убери строчку return false из функции open_photo

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-16 22:49:46
Alex Keda
вах! Шаман!
А я даже не пробовал - думал без него основное окно чёнить показывать начнёт =)))

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-16 22:51:22
Alex Keda
а при чём яд...
[классический секс] всяки фёрстВДС которые платят по 10 копеек за клик...
так хоть можно примерно прикинуть чё происходило, куда кликали и во что это вылилось.
Я не гото вывешивать на сайте рекламу по 10 копеек за клик =)

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-19 14:12:48
Alex Keda
косяк. Щас сижу под первым файрфоксом - картинок вообще не видно =(

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-19 14:42:17
ProFTP
я видел методом пхп подсчет кликов...

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-19 14:45:41
Alex Keda
невозможно.
это всё происходит на клиентской стороне...

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-20 13:11:57
zg
lissyara писал(а):косяк. Щас сижу под первым файрфоксом - картинок вообще не видно =(
хм, фф1.5 работает

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-20 13:53:28
Alex Keda
во-во.
у меня тоже под всем пашет.
а вот на учёбе есть тока
Mozilla 1.7.12 - не пашет
Firefox 1.0.7 - не пашет
Konqueroor 3.3.1 - не пашет...

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-20 14:51:11
zg
lissyara писал(а):во-во.
у меня тоже под всем пашет.
а вот на учёбе есть тока
Mozilla 1.7.12 - не пашет
Firefox 1.0.7 - не пашет
Konqueroor 3.3.1 - не пашет...
под рукой тока винда, поэтому
about.PNG
окошечко рисуется
ff.PNG
скрипт работает
popup.PNG
popup.PNG (10.57 КБ) 4485 просмотров
конкуеррора под рукой нет, но думаю, что там тоже работает

тестовый скрипт

Код: Выделить всё

<CENTER>
		<TABLE border="0" cellspacing="0"  cellpadding="0">
			<TR>
				<TD align="center" style="border: 1px solid #707680;">
				<script language="javascript">
				document.writeln('<a href="javascript:open_photo_48c50c665bb32ec8f5336739642d9f4c()"><img src="1.jpg" border="0" alt="Видеокарта NVidia FX5600-XT - видны вздувшиеся конденсаторы (вздулись, они, кстати, не так уж и сильно - а работать уже отказалась :))" title="Видеокарта NVidia FX5600-XT - видны вздувшиеся конденсаторы (вздулись, они, кстати, не так уж и сильно - а работать уже отказалась :))" width="300" /></a>');
				</script>
				<noscript>
				<a href="1.jpg"><img style="border: 1px solid White;" src="1.jpg" border="0" alt="Видеокарта NVidia FX5600-XT - видны вздувшиеся конденсаторы (вздулись, они, кстати, не так уж и сильно - а работать уже отказалась :))" title="Видеокарта NVidia FX5600-XT - видны вздувшиеся конденсаторы (вздулись, они, кстати, не так уж и сильно - а работать уже отказалась :))" width="300"></a>
				</noscript>
				</TD>
			</TR>
		</TABLE>
		</CENTER>
		<p align="justify"><CODE>
		<!-- скрипт нового окна для этой картинки -->
		<script type="text/javascript">
			function open_photo_48c50c665bb32ec8f5336739642d9f4c(){
			var vphoto = window.open("","Bigphoto","copyhistory=0,directories=0,width=660,height=580");
			vphoto.document.write("<HTML>\n");
			vphoto.document.write("<HEAD>\n");
			vphoto.document.write("<TITLE>Видеокарта NVidia FX5600-XT - видны вздувшиеся конденсаторы (вздулись, они, кстати, не так уж и сильно - а работать уже отказалась :))</TITLE>\n");
			vphoto.document.write("<META NAME=\"keywords\" CONTENT=\"Видеокарта NVidia FX5600-XT - видны вздувшиеся конденсаторы (вздулись, они, кстати, не так уж и сильно - а работать уже отказалась :))\">\n");
			vphoto.document.write("<META NAME=\"description\" CONTENT=\"Видеокарта NVidia FX5600-XT - видны вздувшиеся конденсаторы (вздулись, они, кстати, не так уж и сильно - а работать уже отказалась :))\">\n");
			vphoto.document.write("<META http-equiv=\"Content-Type\" content=\"text/html;charset=windows-1251\">\n");
			vphoto.document.write("</HEAD>\n");
			vphoto.document.write("<BODY>\n");
			vphoto.document.write("<div align=center>\n");
			vphoto.document.write("<CODE><b>Видеокарта NVidia FX5600-XT - видны вздувшиеся конденсаторы (вздулись, они, кстати, не так уж и сильно - а работать уже отказалась :))</b></CODE>\n");
			vphoto.document.write("<br>\n<br>\n");
			vphoto.document.write("<div style=\"height:480; width:640;\">\n");
			vphoto.document.write("<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n");
			vphoto.document.write("\t<tr>\n");
			vphoto.document.write("\t\t<td align=\"center\" style=\"border: 1px solid #707680;\">");
			vphoto.document.write("<a href=\"javascript:window.close();\" title=\"Кликните, чтобы закрыть\">");
			vphoto.document.write("<img style=\"border: 1px solid White;\" src=\"images/upload_images/2005-10-25/48c50c665bb32ec8f5336739642d9f4c.jpg\" border=\"0\">");
			vphoto.document.write("</a>");
			vphoto.document.write("</td>\n\t</tr>\n</table>\n");
			vphoto.document.write("</div>\n");
			vphoto.document.write("</div>\n");
			vphoto.focus();
			vphoto.document.close();
			
			}
		</script>
<br />
потести на бзде, думаю, работать будет все команды (write и writeln) поддерживаются всеми браузерами с незапамятных времён

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-20 15:29:52
Alex Keda
да вот и сам не вкурю - чё под этим редхатом не так ему

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-20 23:01:45
ProFTP
а это разве очень нужная функция количество кликов по картинке нигде такого не видел? если бы по ссылке скачивания, то можно было бы...

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-21 1:36:58
Alex Keda
ты непонял.
я учитываю клики по объявлениям.
а вот пострадали картинки =)

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-23 22:09:39
Overseer
А если такой вариант:
<a href="images/upload_images/2005-10-25/48c50c665bb32ec8f5336739642d9f4c.jpg" onclick="return open_photo_48c50c665bb32ec8f5336739642d9f4c();">
<script type="text/javascript">
function open_photo_48c50c665bb32ec8f5336739642d9f4c(){
// тут код..
return false;
}
т.е. получится:
return open_photo_48c50c665bb32ec8f5336739642d9f4c(); => return false;

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-24 1:44:36
Alex Keda
ну, добавить то могу, тока лису 1.0 под древним редхатом я больше не увижу =)))

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-24 2:31:10
Overseer
почему это? :shock:

Re: JS: странности взаимодействия двух скриптов.

Добавлено: 2008-03-24 9:38:09
Alex Keda
учиться закончил =)
это на учёбе было