2

在一个客户的网站上,古时候有人在<base>超级父磁贴定义中放置了一个 -tag,这简直是奇怪的。它只是指自己,可以说它basicTileLayout.jsp正在发布一个标签:

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

在头上。

该网站现在主要是 GWT。无论如何,由于某些奇怪的原因,Firefox 和只有 Firefox 有时会在例如单击 DOM 中看起来像这样的 GWT 生成的链接时对这个基本 URL 进行 ajax 调用:

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

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

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

更新:

我做了一些 GWT 谷歌搜索,发现了这个与 IE 相关的东西:

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

我浏览了代码并注意到它似乎只发生在使用 GWT:s Anchor 生成的链接上,而没有从事件处理程序对事件调用 preventDefault。

猜测可能是 Firefox 可能会对 unloadEvent 上的 base-url 执行此 GET 操作,因为我们不会阻止默认设置。但是,为什么只有在我无法理解的基本标签时才会对 url 进行 ajax 调用。

更新 2:

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

任何指针高度赞赏!

4

1 回答 1

2

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

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

显然,如果有一个<base>in head,Firefox 实际上只会使用它与这个空的 src-attribute 连接,因此对 base 中的 url 进行 GET。没有 webkit 浏览器,IE 也没有。

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

于 2013-04-10T16:02:34.663 回答