2010-11-04 2 views
0

Я пытаюсь вставить ссылку в пустой < a> с идентификатором "popup". Ссылка откроет текущую страницу во всплывающем окне (с параметрами, которые я буду определять позже). Я пытаюсь объединить HTML-код, необходимый для создания гиперссылки плюс переменная JS 'window.location.href' - как их можно объединить? то есть как я могу это исправить, чтобы сделать его работу, или переписать его в виде функции с «window.location.href» в качестве переменной:Как я могу использовать 'window.location.href' в вставке или обертке jQuery HTML?

$("#popup").html('<a href=' . window.location.href . '>open popup</a>'); 

ответ

5

Как это:

$("#popup").html($('<a />', { href: window.location.href, text: 'open popup' })); 

Или для всплывающего окна:

$("#popup").html($('<a />', { 
    href: window.location.href, 
    text: 'open popup', 
    target: '_blank' 
})); 

Или, используя window.open() для параметров:

$("#popup").html($('<a />', { 
    href: '#', 
    click: function() { window.open(window.location.href, 'popup', 'params'); } 
})); 

Были 2 проблемы с вашим оригинальным подходом:

$("#popup").html('<a href=' . window.location.href . '>open popup</a>'); 
  1. Использование + для конкатенации строк
  2. Вы должны кавычки атрибут

Как это:

$("#popup").html('<a href="' + window.location.href + '">open popup</a>'); 
+0

очень полезно, спасибо огромное! – nathanbweb

+0

@ user497410 - welcome :) –

+0

И 3. Вам нужно «&» -кодировать любые HTML-специальные символы внутри URL-адреса. +1 для версии без строчки HTML-строки! – bobince

0
$("#popup").attr("href",window.location.href).attr("target","_blank").text("Open Popup"); 
+0

'# popup' кажется контейнер, а не якорный тег. –

+0

отлично, отлично, спасибо! – nathanbweb

1

кстати: в JavaScript вы объедините строки с + вместо . (PHP, верно?):

var something = 'Hello' + ' ' + 'World'; // => 'Hello World' 
+0

Я смешал их так много раз -_- –

+0

ах да, привычка PHP.Благодаря! – nathanbweb

0

Это изменит ссылку, поэтому HREF тот же.

$("#popup").attr('href',window.location.href); 

e.g.

<a id="popup" href="">popup</a> 

становится

<a id="popup" href="yourcurrenturl">popup</a> 

EDIT:

Чтобы дать вам немного вдохновения для других методов для всплывающих окон (простите меня, если это, если этот код не работает, я просто взбитыми сообща быстро)

HTML

<a href="http://www.developertipoftheday.com" rel="popup" target="alexsite">open alex site in popup</a> 

JavaScript

$("a[rel = 'popup']").click(function (event) { 

    var popupWindow= window.open($(this).attr("href"), $(this).attr("target"), "status=true,toolbar=false,menubar=false,location=false,width=1018,height=792") 

    if (popupWindow=== null) { 

     alert("A messasge to inform the user, that the popup has been blocked"); 
    } 

}); 
+0

классный, мне нравится, что лучше – nathanbweb

+0

Рад, что вам понравилось, надеюсь, он сразу ответит на ваш вопрос. Однако я бы рекомендовал сделать еще несколько исследований - так как вы можете найти другой подход к всплывающим окнам, которые можно использовать повторно. Взгляните на исходный код этого всплывающего плагина http://www.webhipster.com/plugins/popify/ для некоторого вдохновения. –

+0

отличный плагин, не знал об этом; благодаря! – nathanbweb