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

Код: 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
(JS) Параметры popup
    #33088198
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По хорошему надо еще цеплять проверку на тип браузера и в соответствии
выдавать нужные параметры. Или нужный скрипт. Для Нетскейпа/Мозиллы надо
одно, для ИЕ другое, а для Оперы третье (там нарвался еще и на проблемы с
закрытием попапа)

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
(JS) Параметры popup
    #33088339
Ksnk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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
(JS) Параметры popup
    #33088353
Ksnk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оппс! Дико извиняюсь! Работать-работант, но с приглючениями... Для Оперы размер окна нужно делать побольше (причем эта зараза иногда не желает представляться :), как ее идентифицировать? ) Для Мазилы тоже глюк с размерами...
...
Рейтинг: 0 / 0
(JS) Параметры popup
    #33088399
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробовал вариант
файл 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
(JS) Параметры popup
    #33088430
sergkarpenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если вместо
Код: plaintext
'margin-left:0'
так
Код: plaintext
'margin:0'
?
...
Рейтинг: 0 / 0
(JS) Параметры popup
    #33088431
Ksnk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
(JS) Параметры popup
Там, этта... в моем большом скрипте нужно везде заменить слово heigth на слово height и все заработает в Мазиле и IE.
...
Рейтинг: 0 / 0
(JS) Параметры popup
    #33088454
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 sergkarpenko.
Да разницы - никакой...;))) что так. что так - не работает...
2 Ksnk
Ты атрбиут height правильно напиши и все заработает...
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(JS) Параметры popup
    #33088458
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
;) Не успел...;))))
Дял одного попапа столько всего городить...;))) Сильная штука...
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(JS) Параметры popup
    #33088475
Ksnk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
4m@t!c;) Не успел...;))))
Дял одного попапа столько всего городить...;))) Сильная штука...

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

// функции открытия окна для просмотра снимка
// параметры: (имя_файла, ширина, высота, текст_заголовка)
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
(JS) Параметры popup
    #33088580
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот вариант. Добрые люди подсказали.
Код: 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
(JS) Параметры popup
    #33088612
Ksnk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А толку-то? Теперь в Мазиле нужно корректировать размер... :)
...
Рейтинг: 0 / 0
(JS) Параметры popup
    #33088615
Ksnk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KsnkА толку-то? Теперь в Мазиле нужно корректировать размер... :)
Извиняюсь, забыл прописать теги у BODY... Таки да! Таки работает ...
...
Рейтинг: 0 / 0
(JS) Параметры popup
    #33088840
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И по-моему, проще Вашего вариант.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(JS) Параметры popup
    #33089339
Ksnk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
19 сообщений из 19, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (JS) Параметры popup
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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