2011-07-29 5 views
2
function popUp(URL) { 
    day = new Date(); 
    id = day.getTime(); 
    eval("page" + id + " = window.open(URL, '" + id + "', 
     'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=400,height=600,left=600,top=300');"); 
} 

<a href="javascript:popUp('http://google.com')">Open the Popup Window</a> 

Это код, который у меня есть сейчас. Я хочу изменить его так, чтобы он нацелился на определенный класс, например «popup», и все ссылки с этим классом генерируют всплывающее окно со ссылкой в ​​href.Лучший способ написать эту функцию?

Вроде как это:

<a class="popup" href="http://google.com">Open the Popup Window</a> 

Как бы я этого добиться?

+0

Почему 'eval'? Это совершенно не нужно. Используйте массив, если вам действительно нужно создать переменную с программным именем. –

+0

Мне нужно окно для определенного размера. Он будет содержать тексты песен. – John

+0

Как это соотносится с требованием 'eval'? Какая у них песня? –

ответ

1
function popUp(URL){ 
day = new Date(); 
    id = day.getTime(); 
     window.open(URL,'"+id+"','toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=400,height=600,left=600,top=300'); 
} 
1

Лучшая оптимизация заключается в ее удалении, позволяя посетителям решить, хотите ли они открыть ссылку в новом окне или нет. По крайней мере, переместить код на слушателя:

<a href="http://google.com" onclick="return popUp(this.href);">Open the Popup Window</a> 

Затем в функции всплывающего возвращать ложь, если функция выполняется правильно.

0

К сожалению замедленным к партии, но вот мои 2 цента:

С JQuery, чтобы сделать ваш пример

<a class="popup" href="http://google.com">Open the Popup Window</a> 

вы можете использовать:

var page = [], id=0; 
$('.popup').click(function(e){ 
    e.preventDefault(); 
// add to array of open popups 
page.push(window.open(this.href,"page"+id,'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=400,height=600,left=600,top=300')); 
    id++; 
    return false; 
}); 

Тогда ты используйте что-то подобное, чтобы закрыть всплывающие окна, чтобы они были открыты.

$('button').click(function(e){ 
    page.reverse(); 
    page.pop().close(); 
    page.reverse(); 
}); 
Смежные вопросы