2009-10-17 6 views
2

Je voudrais ouvrir une nouvelle fenêtre avec une hauteur de 600px et une largeur de 200px, après avoir cliqué sur un lien hypertexte.Comment ouvrir une nouvelle fenêtre en cliquant sur un lien hypertexte?

Comment puis-je faire cela en HTML/Javascript?

Est-ce que j'utilise quelque chose comme window.open? Est-il compatible avec IE? Ou devrais-je utiliser quelque chose dans Jquery?

Merci d'avance.

+0

merci pour les réponses, mais comment créez-vous un lien de cette façon? Je sais comment le faire normalement "", mais comment puis-je le faire avec window.open? – chris

+0

Chris, Voir ma réponse sur la façon de construire votre code HTML, puis attacher le JavaScript pour ouvrir la fenêtre: http: // stackoverflow.com/questions/1580987/comment-ouvrir-une-nouvelle-fenêtre-quand-cliquer-un-hyperlien/1581020 # 1581020 –

Répondre

7

Il est de loin préférable de le joindre à l'hyperlien discrètement, semblable à:

HTML

<a href="mypopup.htm" id="popup">This will open in a new window</a> 

JavaScript

window.onload = function() { 
    document.getElementById("popup").onclick = function(){ 
     return !window.open(this.href, "pop", "width=200,height=600"); 
    } 
} 

L'avantage de cette approche est que vous seulement avoir à spécifier le lien hypertexte dans votre code HTML, et si JavaScript est désactivé o r produit une erreur pour une raison quelconque, puis il se contentera d'utiliser simplement un lien hypertexte standard.

+0

C'est une bonne approche. Je suppose que je suis chanceux que tous mes trucs commerciaux soient pour un groupe d'utilisateurs contrôlés, qui ont tous activé javascript. :) Avec le bit this.href aussi, vous pouvez définir ceci avec un sélecteur Jquery et au lieu d'un id affecter une classe entière d'objets. –

+0

Exactement. Une utilisation de cette méthode est d'ajouter rel = "external" sur n'importe quel lien que vous voulez ouvrir dans une nouvelle fenêtre et utiliser JavaScript (ou n'importe quelle librairie JavaScript de votre choix) pour les ouvrir dans une nouvelle fenêtre comme celle-ci. –

+0

dans ma page asp.net j'ai une vue de la grille et dans chaque ligne de la gridview je m dynamiquement créer des liens différents, mais cette technique fonctionne pour le premier lien généré seulement.quoi ???? –

0

JavaScript est la meilleure façon de le faire

var = win window.open (cant remeber ce bit); win.resizeTo (w, h); win.focus();

0
var user_window=window.open('http://www.someplace.com','someplace_window_name','toolbar=no,directories=no,location=no,status=yes,menubar=no,resizable=yes,scrollbars=yes,width=1024,height=768'); 
user_window.focus(); 

Un clic utilisateur Suscitent cela, ou il sera bloqué par la plupart des bloqueurs de popups. Cela fonctionne dans tous les navigateurs que j'ai dû prendre en charge, y compris IE6 +, FF, Opera, Safari.

Le bit de mise au point garantit que la nouvelle fenêtre est placée au premier plan.

Comme alternative à une fenêtre contextuelle, je suggère le plugin Dialog pour Jquery.
C'est ce que j'ai remplacé 90% de mes fenêtres popup avec.
Votre popup devient un popover (lié dans la fenêtre d'origine), et pour autant que je sache, il n'est jamais bloqué par un bloqueur de popup. Le plugin Dialog permet de créer des popovers, des effets d'apparence et de disparition, et bien d'autres choses intéressantes.

Questions connexes