Relative URLs in JavaScript funktionieren nicht mit IE
Carsten Leue
- javascript
0 Gun
In meiner HTML Datei gebe ich eine Basis-URL für ein Dokument über das base-tag and und möchte nun in dem Dokument relative URLs verwenden. Die Erwartung ist, daß sich diese relativen URLs auf die Basis-URL beziehen.
Das funktioniert, solange der link direkt kodiert ist, also z.b. <a href="html4/">link</a>.
Wenn jedoch der Link durch den Aufruf einer Javascript Funktion erzeugt wird, indem location.href auf den relativen Link gesetzt wird, ignoriert zumindest IE das base tag. In Mozilla und Opera scheint dies jedoch zu funktionieren.
Eine Beispiel HTML Datei, die das Problem illustriert, liegt bei.
Gibt es für diese Problem einen Workaround, der auch mit IE funktioniert?
<html>
<head>
<base href="http://www.w3.org/TR/">
<script language="JavaScript">
function invokeLink(aLink) {
location.href = aLink;
}
//-->
</script>
</head>
<body>
This is a <a href="javascript:invokeLink('html4/')">relative</a> link. <br>
This is an <a href="javascript:invokeLink('http://www.w3.org/TR/html4/')">absolute</a> link. <br>
</body>
</html>
Workaround wäre evtl., die Base URL aus dem Locationobjekt zu ziehen?
window.location.host oder eine andere der unter location verfügbaren Eigenschaften...
Bye,
Gun