Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (JS) Параметры popup / 19 сообщений из 19, страница 1 из 1
27.05.2005, 15:49
    #33087897
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Параметры popup
Есть картинка небольших размеров. Клиент кликает по линке и появляется Окно с этой картинкой. Хочу подогнать размеры точно под размеры картинки.
Вписал ручками атрибуты width, height. Но почему-то картинка точно не вписалась. Остался отступ слева и сверху где-то 10 пикселов. В доке нашел что для Netscape есть атрибуты innderWidth, innerHeight. ИЕ естественно это не отработал.
Возможно как-то управлять отступами? если да, то подскажите как? Или это особенности ИЕ?
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
27.05.2005, 16:00
    #33087937
Berkut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Параметры popup
Кажись надо в дочернем окне проставить свойства margin-left, margin-top... По умолчанию (если память не изменяет) они как раз ставятся в 10 пикселов.
Я так лечил.
...
Рейтинг: 0 / 0
27.05.2005, 16:05
    #33087956
sergkarpenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Параметры popup
недавно тоже подобное делал.
на скорую руку получилось такое

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
function open_img(img_url,img_title,width,height){
	var paramWin = 'menu=no,status=no,menubar=no,location=no,left=100,top=100,width=' + width + ',height=' + height +'"';
    var oNewWin = window.open('about:blank',null,paramWin);
    
    var sHTML = "<HTML><HEAD>";
    sHTML +="<TITLE>" + img_title + "</TITLE>";
    sHTML +="<BODY style='margin:0; background-color:#000000;' onload='self.focus()' onblur='self.close()'>";
    sHTML +="<img src='" + img_url + "' width='" + width+ "' height='" + height + "'>";
    sHTML +="</BODY></HTML>";
    oNewWin.document.writeln(sHTML);
    oNewWin.document.close();
	
}
но меньше чем 100 на 100 окно не делается
...
Рейтинг: 0 / 0
27.05.2005, 17:17
    #33088198
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Параметры popup
По хорошему надо еще цеплять проверку на тип браузера и в соответствии
выдавать нужные параметры. Или нужный скрипт. Для Нетскейпа/Мозиллы надо
одно, для ИЕ другое, а для Оперы третье (там нарвался еще и на проблемы с
закрытием попапа)

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
27.05.2005, 18:04
    #33088339
Ksnk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Параметры popup
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
<body>
<script language="JavaScript" type="text/javascript">
<!--
   preloads = new Object;

function open_img(img_url,img_title,width,height){
	var paramWin = 'menu=no,status=no,menubar=no,location=no,left=100,top=100,width=' + width + ',height=' + height +'"';
    var oNewWin = window.open('about:blank',null,paramWin);

    var sHTML = "<HTML><HEAD>";
    sHTML +="<TITLE>" + img_title + "</TITLE>";
    sHTML +="<BODY style='margin:0; background-color:#000000;' onload='self.focus()' onblur='self.close()'>";
    sHTML +="<img src='" + img_url + "' width='" + width+ "' height='" + height + "'>";
    sHTML +="</BODY></HTML>";
    oNewWin.document.writeln(sHTML);
    oNewWin.document.close();
}
function ChkPre(mark)
{
   nextclock();
   if (preloads[mark] && preloads[mark].complete) {
     open_img(preloads[mark].src,'Èìàã',preloads[mark].width,preloads[mark].heigth) ;
   } else
     setTimeout('ChkPre("'+mark+'")', 1000 );
}

function ChkImg(url,mark)
{
   if ( !preloads[mark] ) {
        preloads[mark] = new Image;
        preloads[mark].src = url;
   }
     setTimeout('ChkPre("'+mark+'")', 1000 );
}
function get_obj(id_name) {
   if (document.getElementById) {
      return document.getElementById(id_name);
   } else if (document.all) {
      return document.all[id_name];
   } else {
      return null;
   }
}

ttime = '\|/-\\'; tcount =  0 ;
function nextclock()
{
   tcount++; if (tcount> 3 )tcount= 0 ;
   var t = get_obj('clock'); t.innerHTML=ttime.substr(tcount, 1 );
}

//-->
</script>
<div id="clock"> | </div>
<a href="javascript:ChkImg('http://www.dreams.ru/cards/category/4a/cat04.jpg','001')">Êëèê!</a>
</body>

Сия чуда должна, по идее показывать картинку в отдельном окне, да еще и размер правильно указывать...

Может кто скажет чего? :)

Потестировал на Мазиле, опере и IE
...
Рейтинг: 0 / 0
27.05.2005, 18:07
    #33088353
Ksnk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Параметры popup
Оппс! Дико извиняюсь! Работать-работант, но с приглючениями... Для Оперы размер окна нужно делать побольше (причем эта зараза иногда не желает представляться :), как ее идентифицировать? ) Для Мазилы тоже глюк с размерами...
...
Рейтинг: 0 / 0
27.05.2005, 18:23
    #33088399
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Параметры popup
попробовал вариант
файл 4.html
Код: plaintext
1.
2.
3.
4.
5.
6.
<html>
<head><title>Картинка</title>
</head>
<body style='margin-left:0'>
<img src="image/04link.jpg">
</body>
</html>
А вызывать
Код: plaintext
<A href="javascript:winpopup=window.open('4.html','popup','width=402,height=488,menubar=no,scrollbar=no,status=no,toolbar=no, screenX=100, screenY=0, left=100, top=0');winpopup.document.close();">Картинка</A>
Не помогает...
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
27.05.2005, 18:36
    #33088430
sergkarpenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Параметры popup
а если вместо
Код: plaintext
'margin-left:0'
так
Код: plaintext
'margin:0'
?
...
Рейтинг: 0 / 0
27.05.2005, 18:36
    #33088431
Ksnk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Параметры popup
(JS) Параметры popup
Там, этта... в моем большом скрипте нужно везде заменить слово heigth на слово height и все заработает в Мазиле и IE.
...
Рейтинг: 0 / 0
27.05.2005, 18:48
    #33088454
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Параметры popup
2 sergkarpenko.
Да разницы - никакой...;))) что так. что так - не работает...
2 Ksnk
Ты атрбиут height правильно напиши и все заработает...
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
27.05.2005, 18:50
    #33088458
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Параметры popup
;) Не успел...;))))
Дял одного попапа столько всего городить...;))) Сильная штука...
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
27.05.2005, 19:00
    #33088475
Ksnk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Параметры popup
4m@t!c;) Не успел...;))))
Дял одного попапа столько всего городить...;))) Сильная штука...

:) Да как-то в тему пришлось... Я тут пару дней думал как-же показывать что-то типа фотоальбома? А тут прямо таки сильно здравая идея !!! :)
...
Рейтинг: 0 / 0
27.05.2005, 19:43
    #33088541
Ksnk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Параметры popup
Кстати, окончательный вариант скрипта, который для Оперы делает дополнительный отступ здесь . Ежели понравилось - смотрите исходный текст сами ;)
...
Рейтинг: 0 / 0
27.05.2005, 20:08
    #33088562
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Параметры popup
У меня такой скриптик вроде прижился

// функции открытия окна для просмотра снимка
// параметры: (имя_файла, ширина, высота, текст_заголовка)
var mpt;
var navName=navigator.appName; // тип навигатора
function popupWin(fileName,w,h,titWin) {
if (mpt) {mpt.close();}
mpt =
window.open('','myphoto','toolbar=0,location=0,directories=0,status=0,menuba
r=0,scrollbars=0,resizable=0,width='
+w+',height='+h+',left=0,top=0,screenX=0,screenY=0');
with(mpt.window.document) {
if(navName=='Netscape') body.innerHTML='<img
src="'+getFullPath()+fileName+'">';
else write('<img src="'+fileName+'">'); // Microsoft Internet Explorer +
Opera
title=titWin;
if(navName=='Netscape')
with(body.style){marginTop='0';marginLeft='0';marginBottom='0';}
else if(navName=='Opera')
with(body.style){marginTop='-8';marginLeft='-8';marginBottom='0';marginRight
='0';}
else with(body){topMargin=0;leftMargin=0;}; // Microsoft Internet Explorer
}
mpt.focus();
return false;
}
// функция закрытия окна просмотра при закрытии родительского окна
function closeWin() {
if (mpt) {mpt.close();}
}
// функция возврвщает путь этого файла (без имени файла)
function getFullPath(){
var path=''+document.location;
return path.substring(0,path.lastIndexOf('/')+1)
}


Тока в Опере подглючивает когда при уже открытом окне надо показать другую
картинку. Немного пободался с задержкой времени на открытие - вроде
заработало, но нюхом чую, что это не есть гуд.

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
27.05.2005, 20:45
    #33088580
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Параметры popup
вот вариант. Добрые люди подсказали.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
	<head>
		<title></title>
		<meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
		<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
		<style>
			.thumb {
				margin: 5px;				
				border: 1px solid # 000000 ;
				cursor: hand;
			}
		</style>
		<script>
			// данная функция создает новое окно при щелчке на изображении
			function showPicture (n) {
				// загружаемому документу (show.html) в качестве параметра передается номер изображения,
				// которое необходимо отобразить/
				// Размеры создаваемого окна: 200х200 пикселей.
				// Позиция нового окна: центр экрана.
				window.open("show.html?"+n,"","width=200, height=200, resizable=no, left="+(screen.width/ 2 - 100 )+", top="+(screen.height/ 2 - 100 ));
			}
		</script>
	</head>
	<body id="page">
		<h1 align="center">Фотогалерея</h1>
		<hr />
		<p align="center">
			<img class="thumb" src="images/thumb/01.gif" onClick="showPicture(1)" />
			<img class="thumb" src="images/thumb/04.gif" onClick="showPicture(4)" />
			<img class="thumb" src="images/thumb/02.gif" onClick="showPicture(2)" />
			<img class="thumb" src="images/thumb/03.gif" onClick="showPicture(3)" />
			<img class="thumb" src="images/thumb/05.gif" onClick="showPicture(5)" />
		</p>
	</body>
</html>
и собственно сам механизм
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
	<head>
		<title></title>
		<meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
		<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
		<style>
			body {
				margin:  0 ;
				padding:  0 ;
				overflow: hidden;
				
			}
		</style>
	</head>
	
	<body id="page">
		<!-- 
		 | для нашего изображения необходимо обязательно установить 
		 | обработчик события Load. Остальные обработчики - по усмотрению...
		 | в данном примере выполнен запрет контекстного меню.
		 | --> 
		<img src="" onContextMenu="return false" onload="imgLoad()" />
		
		<script>
			// используя location.search, получим имя файла - номер, идущий сразу за знаком "?"
			var fname = parseInt(location.search.slice( 1 ));
			
			// добавим, если необходимо лидирующие "0"
			fname = (fname <  10 ) ? "0"+fname : ""+fname;
			
			// загрузим файл в объект Image и будем ожидать события Load (загружен)
			document.images[ 0 ].src="images/"+fname+".jpg";
			
			// обработчик события Load для изображения
			// возникает тогда, когда изображение полностью загружено
			function imgLoad () {
				// исходя из известных нам размеров окна (200х200), размеров изображения и размеров
				// клиентской области страницы , вычислим новый размер окна (подгонка под размер изображения)
				var hSize = document.images[ 0 ].width+( 200 -page.clientWidth),	// горизонтальный размер - ширина
					vSize = document.images[ 0 ].height+( 200 -page.clientHeight);	// вертикальный размер - высота
				
				// изменим размеры ... 
				window.resizeTo (hSize, vSize);
				// ... и позицию окна
				window.moveTo (screen.width/ 2 -hSize/ 2 , screen.height/ 2 -vSize/ 2 );
			}			
		</script>
	</body>
</html>

----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
27.05.2005, 21:32
    #33088612
Ksnk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Параметры popup
А толку-то? Теперь в Мазиле нужно корректировать размер... :)
...
Рейтинг: 0 / 0
27.05.2005, 21:35
    #33088615
Ksnk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Параметры popup
KsnkА толку-то? Теперь в Мазиле нужно корректировать размер... :)
Извиняюсь, забыл прописать теги у BODY... Таки да! Таки работает ...
...
Рейтинг: 0 / 0
28.05.2005, 13:30
    #33088840
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Параметры popup
И по-моему, проще Вашего вариант.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
29.05.2005, 12:01
    #33089339
Ksnk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Параметры popup
4m@t!cИ по-моему, проще Вашего вариант.

Просто - не значит - правильно :)
Там есть раздражающее меня место, когда окно с одного места перескакивает на другое после загрузки. Я бы так подгрузил ее сначала, а затем уже демонстрировал, да и двигать ее по экрану - IMHO лишнее...
Принципиальный момент - это то, что изменение размеров экрана делается функцией window.resizeTo с учетом page.clientWidth..., что оказалось более правильно, чем предложеные в ветке варианты, ну и фича, что факт подгрузки можно отслеживать функцией onLoad...

Вот текст в котором все, вроде учтено и который мне, который нравится больше... :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
<body>
<script language="JavaScript" type="text/javascript">
<!--

function open_img(url,tit,w,h){
  	var paramWin ='width='+w+',height='+h+',resizable=no,scrollbars=no,'+
                         'status=no,toolbar=no,menubar=no,location=no';
    var oNewWin = window.open('','kat',paramWin);
    var sHTML = "<HTML><HEAD>";
    sHTML +="<TITLE>" + tit + "</TITLE>"+
            "<style> body {margin: 0;	padding: 0;	overflow: hidden;}</style>";
    sHTML +="<BODY id='page' onload='self.focus()' onblur='self.close()'>";
    sHTML +='<img src="'+url+'" onContextMenu="return false" >';
    sHTML +='<'+'script> ';
    sHTML +='var hSize = 2*'+w+'-page.clientWidth , vSize = 2*'+h+'-page.clientHeight; ';
    sHTML +='window.resizeTo(hSize,vSize); ';
    sHTML +='<'+'/script>';
    sHTML +="</BODY></HTML>"; 
    oNewWin.document.writeln(sHTML);
    oNewWin.document.close();
}

function ImgLoad(e)
{
   if(!e) return ;
   open_img(e.src,'Имаг',e.width,e.height) ;
}

function ChkImg()
{
   var t = get_obj("im"); if(!t) return ;
	 var i =get_obj('testimg'); if (!i) return ;
	 i.src=t.value ;
}
function get_obj(id_name) {
   if (document.getElementById) {
      return document.getElementById(id_name);
   } else if (document.all) {
      return document.all[id_name];
   } else {
      return null;
   }
}

//-->
</script> <center>
Укажите название картинки и
<a href="javascript:ChkImg()"> Клик!</a>
<img id ="testimg" src="" onLoad=ImgLoad(this) style=" display:none;">
<input type=text id="im" size="40"
  value="'http://www.dreams.ru/cards/category/4a/cat05.jpg'">
</center></body>

...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (JS) Параметры popup / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]