2013-04-24 4 views
11

Я пытаюсь загрузить href в всплывающее окно определенных размеров, которое также центрируется на экране.Открытая ссылка в Popup Window с Javascript

Вот мой источник:

<li> 
    <a class="sprite_stumbleupon" href="http://www.stumbleupon.com/submit?url=http://www.your_web_page_url" target="_blank" onclick="return windowpop(545, 433)"></a> 
</li> 

А вот мой JavaScript:

function windowpop(url, width, height) { 
    var leftPosition, topPosition; 
    //Allow for borders. 
    leftPosition = (window.screen.width/2) - ((width/2) + 10); 
    //Allow for title and status bars. 
    topPosition = (window.screen.height/2) - ((height/2) + 50); 
    //Open the window. 
    window.open(url, "Window2", "status=no,height=" + height + ",width=" + width + ",resizable=yes,left=" + leftPosition + ",top=" + topPosition + ",screenX=" + leftPosition + ",screenY=" + topPosition + ",toolbar=no,menubar=no,scrollbars=no,location=no,directories=no"); 
} 

Это, кажется, возвращает ошибку 404 при тестировании. Что я делаю не так?

Спасибо, кучи.

+2

Вы не послали 'url' параметр в' windowpop' функции. –

+0

'function windowpop (url, width, height)' Функция ожидает возврата URL-адреса, но вы возвращаете только ширину и высоту. – Mal

+0

Это может быть закрыто по уважительной причине, но я сочла его безумным полезным. Я не знал о каких-либо дополнительных параметрах window.open. – jstaab

ответ

12

function windowpop(url, width, height) Функция требует возврата URL-адреса.

onclick="return windowpop(545, 433)" Вы только возвращаете width и height.

Попробуйте возвращенная URL с помощью this.href:

onclick="return windowpop(this.href, 545, 433)" 

пример:http://jsfiddle.net/zKKAM/1/

+2

Просто примечание, я использовал этот метод и прекрасно работаю, если вы не разрешаете всплывающие окна в вашем браузере, однако, если вы это сделаете, он откроет всплывающее окно дважды. Я решил это, добавив event.preventDefault(); по щелчку ссылки и удалить возврат с начала windowpop(). – madagalbiati