2012-06-22 51 views
1

我们正在使用GWT并利用History框架。在应用程序中一切正常,但我们的一些客户正试图把超链接放到我们的应用程序的PowerPoint演示文稿中。但是在PP2007中的there is known problem在超链接中带有散列符号(“#”),这使得它们不可用。历史记录:避免URL中的哈希(“#”)字符

那么有什么方法可以将由GWT Hisory框架生成的URL中使用的分隔符改为哈希之外的其他东西吗?

或者是否有可能拦截GWT历史记录生成的新URL并在浏览器的地址栏更新之前进行修改?

回答

2

我不认为你可以/应该改变散列符号。主要是因为这个标志不是来自GWT,而是来自HTTP规范。您可以阅读doc中散列片段的部分,以获得很好的解释。主要的一点是,为网址添加#号不会导致完整的浏览器刷新。这就是为什么这个符号用于ajax和GWT的历史。

如果你仍然想拦截新的URL,你应该添加一个ValueChangeHandler到你的历史记录,然后使用Window.Location.getHref()和Window.Location.assign()更改URL。但这就像使用历史记录去做一些它没有做到的事情,所以你最好实施自己的历史管理系统。

+0

感谢您的深入解释。我并不知道散列符号的特殊功能。 –

相关问题