我目前有一个使用 Google 提供的活动和地点模型的 GWT 项目。我们正在与第三方跨域 JavaScript 解决方案集成,该解决方案在 iframe 中呈现外部域的 JSP,并在用户完成此 JSP 中的工作时利用 window.location 传输通知我们的域。
问题在于,通过使用 window.location 传输,GWT 的位置系统将捕获 URL 的编辑并尝试导航到不存在的位置。
我们确实有一些影响力让第三方做出改变,所以我能看到的三个选项是:
- 如果它包含此第三方 JS 使用的特定保留字符串列表,则捕获尝试的地点导航并忽略它。
- 让第三方更改他们的解决方案以利用 window.name(减少他们的重构)
- 让第三方更改他们的解决方案以利用 JSONP(他们进行更多重构)
有什么方法可以真正实现#1?
编辑所以我想出了如何通过滚动我自己版本的 GWT 的 PlaceHistoryHandler 并更改handleHistoryToken方法来实现#1。真正的问题是这三种解决方案中的哪一种是最佳实践?