2010-10-05 8 views
7

Problemawindow.open falla con URLs relativas en IE (Cuando se utiliza la etiqueta de base)

estoy usando la etiqueta de base para resolver URL relativos a un punto específico en algunas páginas html generadas dinámicamente.

Esto funciona muy bien hasta que intento usar Window.open en javascript. Firefox resuelve todo bien, pero IE resuelve la URL a la URL mostrada.

¿Hay un IE que funcione para esto?

me gustaría evitar

La combinación de la URL con el href de la etiqueta de base a través de Javascript/jQuery. (A menos que sea a prueba de balas. Reconocer la diferencia entre las URL no relativas y las relativas, manejar la existencia de '/' o ninguna '/' cuando se combina, etc.).

Incluso si tiene una solución. Se preferiría uno integrado (¿una cuestión de formatear mis URL relativas para hacer que IE sea feliz ?, o lo que sea).

Ejemplo

<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> 

Respuesta

6

Ni idea de si esto va a funcionar - que puede o no, dependiendo de funcionamiento interno del IE - pero usted podría intentar si esto se traduce correctamente:

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

fantástico , funciona. ¡Gracias! –

+2

Tenga en cuenta que tiene que usar 'this.href', no funcionará con' this.getAttribute ('href') '. – Roben

+0

Tuve un problema similar, también funciona bien en jQuery. He ejecutado una ventana emergente del controlador '$ (elemento) .on ('clic')'. Anteriormente probé '$ (this) .attr ('href')' y tuve un problema similar al de Brandon (aunque configuré ). Ahora funciona bien con 'this.href'. Gracias Pekka y Roben! – alekwisnia

Cuestiones relacionadas