2010-10-05 5 views
7

Problèmewindow.open échoue avec les URL relatives dans IE (Lorsque vous utilisez la balise de base)

J'utilise la balise de base pour résoudre les URL par rapport à un point spécifique dans certaines pages .html générées dynamiquement.

Cela fonctionne très bien jusqu'à ce que j'essaie d'utiliser Window.open en javascript. Firefox résout tout bien, mais IE résout l'URL de l'URL affichée.

Existe-t-il un travail d'IE pour cela?

Je voudrais éviter

En combinant l'URL avec le href dans la balise de base via Javascript/jQuery. (À moins qu'il ne soit à l'épreuve des balles.) Reconnaître la différence entre les URL non relatives et relatives, gérer l'existence de '/' ou de '/' en cas de combinaison, etc ...).

Même si vous avez une telle solution. Un construit dans un serait préférable (une question de mise en forme de mes URL relatives pour rendre IE heureux ?, ou peu importe).

Exemple

<html> 
    <head> 
    <base href="http://stackoverflow.com" /> 
    <script type="text/javascript"> 
    showWindowPopupFullScreen = function(URL) { 
     var pageWidth = screen.availWidth; 
     var pageHeight = screen.availHeight; 
     var popup = window.open(URL, 'Window', 'height=' + pageHeight + ',width=' + pageWidth + ',top=0,left=0,resizable'); 
     if (window.focus) { 
      popup.focus(); 
     } 
    } 
    </script> 
    </head> 
    <body> 
    <a href="javascript:showWindowPopupFullScreen('users/402706/brandon-boone')">test</a> 
    </body> 
</html> 

Répondre

6

Aucune idée si cela fonctionnera - il pourrait ou ne pourrait pas, selon le fonctionnement interne de l'IE - mais vous pouvez essayer si cela se traduit correctement:

<a href="users/402706/brandon-boone" 
    onclick="showWindowPopupFullScreen(this.href)">test</a> 
+0

Fantastique , Ça marche. Je vous remercie! –

+2

Notez que vous devez utiliser 'this.href', cela ne fonctionnera pas avec' this.getAttribute ('href') '. – Roben

+0

J'ai eu un problème similaire, cela fonctionne bien aussi dans jQuery. J'ai lancé une popup depuis le gestionnaire '$ (element) .on ('click')'. Auparavant, j'ai essayé '$ (this) .attr ('href')' et j'ai eu un problème similaire à celui de Brandon (même si j'ai défini ). Maintenant cela fonctionne très bien avec 'this.href'. Merci Pekka et Roben! – alekwisnia

Questions connexes