Pop-up окна на jave.

6 августа 2009 в 2:54
Аватар пользователя AleksSem AleksSem 0 16

доброго времени суток всем!
Нашел в интернете вариант как можно вклинить pop-up окна в линки путем java scripta.

function showPopup() {
var popup = window.open(this.href, "image_fullsize", "height=800,width=600");
popup.focus();
return false;
}

function findlink()
{
var links,i;
links=document.getElementsByTagName('a');
for(i in links)
{
if(/popups/.test(links[i].className))
{
links[i].onclick = function(){showPopup()};
}
}
}

window.onload=function(){
findlink();
}

Только вот проблема в том что почему то не могу получить правильный href все время пишет undefined.
Кто нибудь может поправить код?
Существует еще одна проблема как по переходе по линку загрузить только ноду без шапки(логотипов блоков и тд)?
Большое спасибо за помощь

Комментарии

Stan.Ezersky wrote:
По-моему вы куда-то в прошлый век собрались-). Лучше поморочьтесь с lightbox2 или Thickbox, в них есть поддержка модальных окон.

Дело в том что мне как раз таки и не нужны модальные окна.

6 августа 2009 в 10:15

Если не ошибаюсь то надо просто изменит вот это

function findlink()
{
  var links,i;
  links=document.getElementsByTagName('a');
  for(i in links)
    {
      if(/popups/.test(links[i].className))
      {
         links[i].onclick = function(){showPopup()};
      }
    }
}

на

function findlink()
{
  var links,i;
  links=document.getElementsByTagName('a');
  for(i in links)
    {
      if(/popups/.test(links[i].className))
      {
         links[i].onclick = function(){showPopup(this)};
      }
    }
}

ЗЫ.Вообще лучше для всего использовать jQuery. Посмотрите в сторону jQuery Tools

6 августа 2009 в 10:01

ммм... там немного ошибся Smile

вообщем правильный код такой

function showPopup(href) {
  var popup = window.open(href, "image_fullsize", "height=800,width=600");
  popup.focus();
  return false;
}

function findlink()
{
  var links,i;
  links=document.getElementsByTagName('a'); //Выбираем все ссылки на сайте
  for(i in links)
  {
    if(/popups/.test(links[i].className)) //Проверяем регуляркой есть ли класс popus
    {
      links[i].onclick = function(){showPopup(links[i].href)};// далее добавляем обработчик события onClick функцию ShowPopup которой в качестве параметра передаем ссылку
    }
  }
}

window.onload=function(){
  findlink();
}

6 августа 2009 в 10:13

Огромное спасибо за вашу помощь. Только href все равно почему то не передается, открывается пустое окно и затем на перент окне происходит переход по ссылке.

6 августа 2009 в 10:26

"AleksSem" wrote:
Дело в том что мне как раз таки и не нужны модальные окна.

"AleksSem" wrote:
Может быть есть еще варианты решения как сделать pop-up нод без модальных окон?

цель сего изврата?

6 августа 2009 в 16:38

просто необходимо удобство просмотра объектов. клиент получает таблицу с объектами по его запросу далее он может открыть несколько объектов чтобы посмотреть их информацию более детально.
Цель изврата в том чтобы иметь возможность открывать несколько объектов за раз а не один и терять контроль над главным окном.

6 августа 2009 в 23:49

>> Существует еще одна проблема как по переходе по линку загрузить только ноду без шапки(логотипов блоков и тд)?
модуль во вложении

код

<a onclick="popupWin = window.open(this.href + '/small', 'windowID-123',
'scrollbars=yes,menubar=no,location=no,width=800,height=650; popupWin.focus(); return false;" href="/node/123/edit">

Ссылка</a>

оно?

10 ноября 2015 в 11:46

"AleksSem" wrote:
возможность открывать несколько объектов за раз а не один и терять контроль над главным окном.

тогда я бы искал пути имитировать окна внутри окна(ну и в них тянуть контент через JSON). средства для этого вроде есть.
попапы - могут блокироваться браузером.

7 августа 2009 в 1:46

"Ilya1st" wrote:
тогда я бы искал пути имитировать окна внутри окна(ну и в них тянуть контент через JSON). средства для этого вроде есть.
попапы - могут блокироваться браузером.

верно сказано, 100%

7 августа 2009 в 8:06

по JSON можно, но: 1 - для запуска JS которые в форме могут быть нужно будет делать отдельные костыли, 2 - после того как мы нажмем в этой форме кнопку "отправить" перезагрузится вся страница.

Тут нужны или попапы или фреймы, я считаю что тут попапы больше подходят

7 августа 2009 в 11:25