2010-11-04 47 views
0

J'essaye d'insérer un lien dans un vide < a> qui a l'id "popup". Le lien ouvrira la page actuelle dans une boîte popup (avec les paramètres que je définirai plus tard). J'essaie d'enchaîner le code HTML nécessaire pour créer un lien hypertexte et la variable JS 'window.location.href' - comment peuvent-ils être reliés ensemble? à savoir comment puis-je résoudre ce problème pour le faire fonctionner, ou le réécrire en fonction avec « window.location.href » comme variable:Comment puis-je utiliser 'window.location.href' dans une insertion HTML jQuery ou un retour à la ligne?

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

Répondre

5

Comme ceci:

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

Ou pour le menu contextuel:

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

Ou, en utilisant des paramètres window.open():

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

Il y avait 2 problèmes avec votre approche originale:

$("#popup").html('<a href=' . window.location.href . '>open popup</a>'); 
  1. Utilisez + pour concaténer des chaînes
  2. Vous avez besoin des guillemets autour de l'attribut

Comme ceci:

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

très utile, merci beaucoup! – nathanbweb

+0

@ user497410 - welcome :) –

+0

Et 3. Vous auriez besoin de '&' -code tous les caractères spéciaux HTML dans l'URL. +1 pour la version sans la chaîne de caractères HTML! – bobince

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

'# popup' semble être un récipient, pas une balise d'ancrage. –

+0

super, parfait, merci! – nathanbweb

1

BTW: en javascript vous combiner des chaînes avec un + au lieu de . (PHP, non?):

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

Je les ai mélangés tellement de fois -_- –

+0

ah oui, habitude PHP.Merci! – nathanbweb

0

Cela va changer le lien, de sorte que le href est le même.

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

par exemple.

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

devient

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

EDIT:

Pour vous donner un peu d'inspiration pour d'autres techniques de popups (pardonnez-moi si cela si ce code ne fonctionne pas, je viens fouetté à ensemble rapidement)

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

cool, j'aime mieux – nathanbweb

+0

Je suis content que vous l'aimiez, j'espère que cela répond directement à votre question. Cependant, je vous recommande de faire d'autres recherches - comme vous pouvez trouver une approche différente des popups plus réutilisables. Jetez un oeil sur le code source de ce plugin popup http://www.webhipster.com/plugins/popify/ pour un peu d'inspiration. –

+0

super plugin, je ne savais pas à ce sujet; Merci! – nathanbweb