доброго времени суток всем!
Нашел в интернете вариант как можно вклинить 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.
Кто нибудь может поправить код?
Существует еще одна проблема как по переходе по линку загрузить только ноду без шапки(логотипов блоков и тд)?
Большое спасибо за помощь
Комментарии
По-моему вы куда-то в прошлый век собрались-). Лучше поморочьтесь с lightbox2 или Thickbox, в них есть поддержка модальных окон.
Дело в том что мне как раз таки и не нужны модальные окна.
Если не ошибаюсь то надо просто изменит вот это
{
var links,i;
links=document.getElementsByTagName('a');
for(i in links)
{
if(/popups/.test(links[i].className))
{
links[i].onclick = function(){showPopup()};
}
}
}
на
{
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
ммм... там немного ошибся
вообщем правильный код такой
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();
}
Огромное спасибо за вашу помощь. Только href все равно почему то не передается, открывается пустое окно и затем на перент окне происходит переход по ссылке.
Может быть есть еще варианты решения как сделать pop-up нод без модальных окон?
цель сего изврата?
просто необходимо удобство просмотра объектов. клиент получает таблицу с объектами по его запросу далее он может открыть несколько объектов чтобы посмотреть их информацию более детально.
Цель изврата в том чтобы иметь возможность открывать несколько объектов за раз а не один и терять контроль над главным окном.
>> Существует еще одна проблема как по переходе по линку загрузить только ноду без шапки(логотипов блоков и тд)?
модуль во вложении
код
'scrollbars=yes,menubar=no,location=no,width=800,height=650; popupWin.focus(); return false;" href="/node/123/edit">
Ссылка</a>
оно?
тогда я бы искал пути имитировать окна внутри окна(ну и в них тянуть контент через JSON). средства для этого вроде есть.
попапы - могут блокироваться браузером.
верно сказано, 100%
по JSON можно, но: 1 - для запуска JS которые в форме могут быть нужно будет делать отдельные костыли, 2 - после того как мы нажмем в этой форме кнопку "отправить" перезагрузится вся страница.
Тут нужны или попапы или фреймы, я считаю что тут попапы больше подходят
вроде блокируются только нежелательные попапы (при обычных настройках), нажмите тут "Открыть окно" - http://scriptic.ru/window/win-lin-o.shtml работает?
Посмотрите modalframe api + там есть example модуль
брехня )
можно и форму JS сабмитеть