Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Проблема с превью


Автор: whitepoison 14.1.2010, 00:36
Здравствуйте. Я в js не силен, только начал осваивать и столкнулся с такой проблемой.
У меня есть код увеличивающий картинку по нажатию
Код

<a href="" onclick="window.open('../old/pic_tel/nokiae71tv_2.jpg', 'image', 'toolbar=no, menubar=no,  
width=500, height=500, resizable=yes, scrollbars=yes'); return false;" TITLE="Увеличить фото"> 
<IMG src="../old/pic_tel/nokiae71tv_2.jpg" width="180" height="150" border="0"></a>

Во всех браузерах кроме IE всё нормально работает и открывается окошко с картинкой. В IE открывается ссылка такого вида: http://имя сайта/product_info.php/old/pic_tel/nokiae71tv_2.jpg 
и естественно никакой картинки там нет. 
Оказывается в заголовке страницы определена вот такая функция
Код

<script language="javascript"><!-- 
function popupWindow(url) { 
window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no, 
resizable=yes,copyhistory=no, 
width=100,height=100,screenX=150,screenY=150,top=150,left=150') 

//--></script>

И IE подставляет в мою функцию window.open url страницы. 
Как переопределить обратно эту функцию в том месте где я собираюсь использовать window.open?
Заранее спасибо за помощь.

Автор: bars80080 14.1.2010, 01:22
Цитата(whitepoison @  13.1.2010,  23:36 Найти цитируемый пост)
И IE подставляет в мою функцию window.open url страницы. 

не корректно озвучил. они все подставлют

ты даёшь относительный урл, и браузер сам решает, как его достроить. видимо, в ИЕ и ФФ это определено по разному.
самый простой совет - задавать абсолютный урл, начинающийся с http:, тогда никаких проблем не будет

если не хочется, то порыскай в поисках тэгов <base href="">
либо ещё чего

Автор: whitepoison 14.1.2010, 01:53
bars80080, большое спасибо. С абсолютным url всё работает.

Автор: HARDMID 14.1.2010, 15:58
А пробуй этот код:

скрипт:
Код

<script type="text/javascript"> 
<!--
function winOpen(url, width, height, propertys, title, timeout)
   {
   windowprops = "left=" + (screen.width-width) / 2 + ',top=' + (screen.height-height) / 2 + ", width=" + width + ", height=" + height + " " + propertys;
   text = "<html><head><title>" + title + "</title></head><body>";
   if (timeout != 0) text += " onload=\"setTimeout('window.close()', " + timeout * 1000 + ");\"";
   text += "<img src='" + url + "' alt='Описание картинки' />";
   text += "</body></html>";
   preview = window.open("", "preview", windowprops);
   preview.document.open();
   preview.document.write(text);
   preview.document.close();
   }
-->
</script>


вид ссылки:
Код

<a onclick="winOpen('/images/pic_large.jpg', '1024', '750', 'menubar=0, status=0', 'Описание картинки', '0'); return false;" 
href="/images/pic_large.jpg"  title="Описание картинки">
<img src="/images/pic_mini.jpg" style="" alt="Описание картинки" /></a>


ЗЫ. А зачем в твоем коде тут две точки? может быть, их надо просто убрать?
Код

... window.open('../old/pic_tel/nokiae71tv_2.jpg', ...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)