Firefox调用<base /> url

时间:2013-04-10 14:00:07

标签: jsp firefox gwt base

在客户的网站上,有人在古代将超级父级磁贴定义中的<base>标记放在一个非常奇怪的位置。它只是指自己,让我们说basicTileLayout.jsp正在推出一个标签:

<base href="http://site.com/layout/basicTileLayout.jsp" />

在头部。

该网站目前主要是GWT。无论如何,出于一些奇怪的原因,Firefox和只有Firefox有时会对这个base-URL进行ajax调用,例如在DOM中点击这样的GWT生成的链接:

<a class="gwt-Anchor" href="javascript:;">Read more</a>

我的第一个想法是,它可能是一些事件冒泡在FF中有所不同,并且可能有一些href =“”在其他浏览器中被GWT事件处理阻止时被调用。但是,删除base-tag应该可以对应用程序基本上下文路径产生一个GET(“/”),对吗?这不会发生。所以看来这个base-tag的存在会触发FF来进行调用。

我问的原因是这是一个超级全局的chrome-tile,因此删除基本标记会改变整个网站上的每个相对href。我很想做,但只是有点害怕:)

更新

我做了一些GWT-googling并发现了这个与IE相关的东西:

https://code.google.com/p/google-web-toolkit/issues/detail?id=5280

我仔细检查了代码并注意到它似乎只发生在使用GWT生成的链接上:s Anchor并且没有从事件处理程序调用preventDefault事件。​​

然后猜测可能是Firefox可能会对被调用的unloadEvent的base-url执行此操作,因为我们不会阻止默认值。但是,为什么只有当我提供的基本标签无法理解时才会对网址进行ajax调用。

更新2:

我尝试在click事件上调用preventDefault,但这没有帮助。如果存在基本标记,则FF获取该URL,如果没有,则不会发生任何不良情况。

任何指针都非常感谢!

1 个答案:

答案 0 :(得分:1)

原来这是由空的img-tags引起的:

<img src="" class="gwt-Image">

显然,如果头部有一个<base>,Firefox实际上只会使用它与这个空的src属性连接,因此对基础的url进行GET。没有webkit浏览器,IE也没有。

这可能是正确的做法。我将在FF中参考我读到的问题: https://bugzilla.mozilla.org/show_bug.cgi?id=444931