2010-11-04 53 views
0

我試圖插入一個鏈接到一個空的< a>,其ID爲「popup」。鏈接將在彈出框中打開當前頁面(使用稍後將定義的參數)。我試圖將超鏈接加上JS變量'window.location.href'所需的HTML串起來 - 如何將它們串在一起?即我怎麼解決這個問題,使其工作,或者重寫它作爲「window.location.href」作爲變量的函數:如何在jQuery HTML插入或換行中使用'window.location.href'?

$("#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'); } 
})); 

有兩個問題與原始的方法:

$("#popup").html('<a href=' . window.location.href . '>open popup</a>'); 
  1. 使用+連接字符串
  2. 您需要周圍的屬性

喜歡這個報價:

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

非常有幫助,非常感謝! – nathanbweb 2010-11-04 16:44:46

+0

@ user497410 - welcome :) – 2010-11-04 16:50:40

+0

和3.您需要對URL中的任何HTML特殊字符進行編碼。對於沒有HTML字符串索引的版本+1! – bobince 2010-11-04 16:52:21

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

'#popup'似乎是一個容器,而不是一個錨標記。 – 2010-11-04 16:37:05

+0

很棒,完美,謝謝! – nathanbweb 2010-11-04 16:44:17

1

BTW:在你的JavaScript字符串結合使用+代替.(PHP,對吧?):

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

我已經混合了這麼多次--_- – 2010-11-04 16:38:18

+0

啊,是的,PHP的習慣。謝謝! – nathanbweb 2010-11-04 16:42:48

0

這將更改鏈接,因此href是一樣的。

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

例如,

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

成爲

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

編輯:

爲了給你一個其他的技術有點靈感的彈出窗口(如果原諒我,如果這個代碼不工作,我只是攪打在一起快)

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 2010-11-04 16:43:24

+0

很高興你喜歡它,希望它直接回答你的問題。不過,我建議做一些更多的研究 - 因爲你可能會發現不同的方法來彈出更多的可重用。看看這個彈出插件的源代碼http://www.webhipster.com/plugins/popify/獲取一些靈感。 – 2010-11-04 17:08:57

+0

偉大的插件,不知道它;謝謝! – nathanbweb 2010-11-04 19:01:32