Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изображение в новом окне при window.open 
:(
    Опции темы
barcelona
Дата 20.2.2012, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Здравствуйте!
Хрестоматийный пример при нажатии на кнопку
Код

var newWin = window.open("/page/42/","PopWin3","width=321,height=261,resizable=0,toolbar=0,location=0,menubar=0,status=0,scrollbars=0");

Отключается всё, кроме resizable. 
Браузеры: Chrome 7.0.517.44, Firefox 5.0, Opera 11.0.
И более общий вопрос: как можно сделать открытие изображения или flash-ролика в новом окне, чтобы это окно было размером точно под содержимое? Проблем здесь вижу 2:
1) Уже описанная с resizable
2) Определение размера окна. При задании размеров в window.open в каждом браузере получается окно разного размера.


PM MAIL   Вверх
ksnk
Дата 20.2.2012, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Накопал у себя в коде вот такое. Основной смысл - пытаемся подстроить свой размер после вывода в окне.
Код

function WindowO(s,w,h)
{
    if(typeof(s)!='string'){
        s=s.getAttribute('href');
        // if($x && ($x.length>2)) { return true;}
        if(s.match(/\/$/)) return false ;
    } 
    try{
      var par="location=no,toolbar=no,resizable=yes";
      if((w+100>window.screen.width)||(h+100>window.screen.height))
        par+=",scrollbars=yes";
      if(w) par+=',width='+w;
      if(h) par+=',height='+h;
      var wind=open("","win",par);
      wind.document.writeln('<html>'+
        '<head><title><'+'/title><style>body,html{width:100%;height:100%;padding:0;margin:0;}\n'+
        'body{overflow:auto;}\n</'+'style>\n<'+'script>function fitPic(){'+
        'iWidth = window.innerWidth||document.body.clientWidth;'+
        'iHeight = window.innerHeight||document.body.clientHeight;'+
        'iWidth = document.images[0].width - iWidth;'+
        'iHeight = document.images[0].height - iHeight;'+
        'if(iWidth && iHeight)window.resizeBy(iWidth,iHeight);self.focus();'+
        //'alert([window.screen.height,window.screen.width, iWidth,iHeight,document.images[0].width,window.innerWidth,document.body.clientWidth]);'+
        '};</'+'script>'+
        '<'+'/head><'+'body onload="fitPic()">'+
        '<img src="'+s+'"><button style="position:absolute;right:10px;bottom:10px;" '+
        'onclick="self.close();">close</button><'+'/body><'+'/html>');
      wind.document.close();
    } catch(e) {
      alert('Всплывающие окна заблокированы! Разрешите всплывающие окна для нормального функционирования.')
    }
    return false;
}

При этом поверх картинки в нижнем правом углу выводилась кнопка закрытия окна. Некоторые пользователи пугались гигантских картинок неожиданно возникающих по клику и не могли сразу найти кнопку закрытия окна. Наличие кнопки вызывало у них ощущение контроля над ситуацией  smile 

Применение - такое
Код


<img src="thumb.img.jpg" onclick="WindowO('big.img.jpg')">

<a href="big.img.jpg" onclick="return WindowO(this,600,400)"><img src="thumb.img.jpg"> </a>



Впрочем, сам я перешел на всплывающие галереи и как-то не пользуюсь уже такой штукой. Но может пригодится ;)

P.S.
так правильнее.

Это сообщение отредактировал(а) ksnk - 20.2.2012, 20:46


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
$дмитрий
Дата 20.2.2012, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 2
Всего: 45



Принципиально нужно окно? Почему бы не отображать flash-ролик в всплывающем слое? Примерно как здесь http://fancybox.net/
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0599 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.