IE - <base />标记适用于<a href=""> but not with JS document.location

时间:2016-03-16 08:59:13

标签: javascript html internet-explorer internet-explorer-11

I have a problem with <base> tag in Internet Explorer (I used IE11 for testing). While I managed to make my links works when using <a href> tag, it still doesn't work if I try to use JS document.location

You can see it live here (scroll down and see two links at the very bottom of the screen): one is using

<a href="test.html">Go to <strong>test.html</strong></a>

and the other one

<a href="javascript:window.document.location='test.html';">Go to <strong>test.html</strong></a>

https://gb.mynetmoto.com/shop.cfm/motorcycle-tyres.html

首先工作正常,第二个没有。为什么?有任何想法吗?

确保使用IE ,因为它可以在任何其他浏览器中正常运行...

2 个答案:

答案 0 :(得分:2)

您应该使用document.baseURI代替。

  

文档的基本URL默认为文档的地址(如   由浏览器显示并在window.location中可用,但可以   从默认值更改:

     

在文档中找到HTML <base>标记时;当这是一个新的   动态创建的文档。请参阅HTML的基本URL部分   生活标准细节。

     

您可以使用document.baseURI获取文档的基本URL。   请注意,获取文档的基本URL可能会返回不同的内容   如果标签或文档的位置发生变化,则会随时间推移。

答案 1 :(得分:0)

使用Location assign()方法

修复了大多数问题
location.assign("uri");

此处有关此方法的更多信息:

http://www.w3schools.com/jsref/met_loc_assign.asp