Pop-up окна на jave.

Главные вкладки

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

доброго времени суток всем!
Нашел в интернете вариант как можно вклинить 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.
Кто нибудь может поправить код?
Существует еще одна проблема как по переходе по линку загрузить только ноду без шапки(логотипов блоков и тд)?
Большое спасибо за помощь

Комментарии

Аватар пользователя AleksSem AleksSem 6 августа 2009 в 10:15

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

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

Аватар пользователя _FeliX_ _FeliX_ 6 августа 2009 в 10:01

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

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

Аватар пользователя _FeliX_ _FeliX_ 6 августа 2009 в 10:13

ммм... там немного ошибся 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();
}

Аватар пользователя AleksSem AleksSem 6 августа 2009 в 10:26

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

Аватар пользователя Ильич Рамирес Санчес Ильич Рамирес Санчес 6 августа 2009 в 16:38

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

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

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

Аватар пользователя AleksSem AleksSem 6 августа 2009 в 23:49

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

Аватар пользователя bodro bodro 10 ноября 2015 в 11:46

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

код

<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>

оно?

Аватар пользователя Ильич Рамирес Санчес Ильич Рамирес Санчес 7 августа 2009 в 1:46

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

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

Аватар пользователя jeehadina jeehadina 7 августа 2009 в 8:06

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

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

Аватар пользователя bodro bodro 7 августа 2009 в 11:25

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

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