ajouter dynamiquement une <un> (lien) balise DOM avec:« return false » est ignoré dans certains navigateurs pour le lien ajouté dynamiquement au DOM avec JavaScript
var link = document.createElement('a');
link.href = 'http://www.google.com/';
link.onclick = function() { window.open(this.href); return false; };
link.appendChild(document.createTextNode('Google'));
//someDomNode.appendChild(link);
Je veux que le lien pour ouvrir dans une nouvelle fenêtre (je sais que c'est mauvais, mais c'est obligatoire). J'ai également essayé d'utiliser l'attribut "target", mais j'ai aussi un mauvais comportement avec cette solution aussi.
Mon code fonctionne bien dans IE et Firefox, mais le renvoie false ne fonctionne pas dans Safari, Chrome et Opera. Par ne fonctionne pas, je veux dire que le lien est suivi après l'ouverture de la nouvelle fenêtre.
Je pense que je pourrais être à cause de l'environnement V3 Google Maps ...
Edit: Pour voir le comportement sur la page réelle:
- Aller à http://tinyurl.com/29q6nw6
- Cliquez sur n'importe quel marqueur sur la carte, un ballon montrera.
- Cliquez sur le titre dans le ballon, le lien doit ouvrir dans une nouvelle fenêtre (travail dans IE et FF, mais pas dans Safari, Chrome et Opera.
Toute aide est la bienvenue!
Edit2: Le problème est dans la fonction "MakeInfoWindowContent" qui se trouve dans "gmaps3.js" Je n'utilise pas DOM pour créer les éléments (j'utilise une chaîne) car cette chaîne HTML doit être passée à Google Maps (pour la fenêtre d'information - le ballon) En fait, le même lien est créé à 2 endroits différents: un à gauche, créé avec la fonction DOM (comme indiqué dans cette question) qui fonctionne dans tous les navigateurs et une dans le ballon, cr Avec une chaîne HTML, celle-ci ne fonctionne pas bien dans Safari, Chrome et Opera (le lien est suivi après l'ouverture de la nouvelle fenêtre même avec le retour false).
Éditer 3: Encore aucune idée pourquoi cela se produit ... Si quelqu'un a une idée, faites le moi savoir!
Fonctionne pour moi: http://jsbin.com/aqode#noedit Chrome 2 + 4, Opera 10, Safari 4 (tous Win). Cliquez sur le lien, une nouvelle fenêtre/onglet est ouvert, la fenêtre parent reste sur la même page. –
Ça marche aussi pour moi à cette URL, bizarre que ça ne marche pas dans ma page avec le même code: S Peut-être que c'est à cause de l'envi de Google Maps. Question mise à jour avec plus de détails ... – AlexV