No me funciona <base href="..."> en javascript en IE

Marcos
02 de Diciembre del 2003
<base href="...">

Esta etiqueta me funciona bien en Netscape y en IE para los enlaces en HTML, pero me da problemas en IE para enlaces que estén dentro de javascript. Este es un extracto del código que utilizo:

<html>
<head>
<base href="http://www.otraweb.es">
<script language="javascript">
function init(){
window.open('/enlace. htm','ventanaEnlace','location=no,menubar=no,resizable=no, status=no, titlebar=no, toolbar=no',true)
}
</script>
</head>
<body onload="init()">
...
</body>
</html>

En netscape me muestra una ventana pop-up con la página, pero en IE me da un error 404 porque no la encuentra ya que está intentando buscarla en mi disco duro y no en la dirección que indico en el href.

Lo primero que he intentado para resolverlo es poner en javascript el siguiente código:

BASE.href="http://www.otraweb.es";

Pero tampoco funciona.

¿A alguien se le ocurre cómo arreglar el problema?


scriptman
02 de Diciembre del 2003
Solo agrega en la funcion del window:

window.open(document.getElementsByTagName("BASE")[0].href+'enlace.htm', ...lodemas...);

Saludos, scriptman.

Marcos
02 de Diciembre del 2003
Sí, esa es una solución sencilla. Mi problema es que el código Javascript está dentro de un fichero js al que no tengo acceso al estar en otro servidor.

En Explorer no soy capaz de hacer que los enlaces dentro de ese archivo js sean absolutos, pero en Netscape funciona correctamente.

scriptman
02 de Diciembre del 2003
Ah ! el codigo JS esta en un fichero js al que no tienes acceso !! como no se me ocurrio antes!!
sera porke no lo mencionate? XD

weno, ps nomas agrega este codigo ANTES de cargar el JS al q no tienes acceso, y DESPUES del BASE:

<script>
function WinOpenNormal(u,n,a){ return true;}
WinOpenNormal=window.open;
function openWin(url,nam,atr){ WinOpenNormal(document.getElementsByTagName("BASE")[0].href+url,nam,atr);}
window.open=openWin;
</script>

lo que hace es suplantar la funcion window.open()
por la nuestra, q agrega al URL el BASE.

saludos, scriptman.

Marcos
02 de Diciembre del 2003
No funciona porque no he mostrado todo el código javascript, pero me has dado la idea de cómo debo hacerlo.

Gracias.