2010-05-27 68 views
0

我正在寻找一种方法来实现ajax应用程序中的后退按钮(没有什么不寻常的),因为有大量的文章涵盖了这个主题。跨域AJAX返回按钮

但是...

当然,但也有许多限制。所以我还没解决的问题就是关于IE6,7中的后退按钮。更具体地说,它是关于后退按钮,当你显示从一个域到另一个域的信息(比如说链接)时,你可以只控制第二个服务器端。

这里有一些更多的细节:

我有一个网站,在其数据库中的信息。然后用户(注册的)可以复制一个javascript代码并将其粘贴到他自己的网站中。 然后JavaScript从我的网站请求信息并将其显示在用户的网站上(该数据包含图像,链接,文本等)。

当用户点击某些链接时,脚本会更改url片段标识符(document.hash),以便网站的所有状态都可以收藏,并且您可以使用后退和前进按钮。

这是伟大的,在大多数的浏览器新workds,但IE6不,7

的主要问题是,随着IFRAME修为IE6,7的解决方案并不在跨域情况下工作,因为你不能写入iframe。

好的,这是我最近想到的问题。其他人想加入?

PS: 我试过有两个iframe--一个写入另一个(它们来自同一个域)。

回答

0

看一看easyXDM,它将允许您在用户粘贴的代码和iframe中的代码之间自由通信。只要看看这个例子http://consumer.easyxdm.net/current/example/methods.html

这个库不需要改变任何'现代'浏览器(包括ie6/7)中的哈希片段,所以它不会创建历史点 - 为此,我建议使用适当的历史库。

+0

感谢您的帮助肖恩,但具有唯一的URL来标识应用程序的当前状态是强制性的。 现在的问题是如何创建IE6,7的历史点与跨域通信为了回来和工作。 – moubi 2010-05-27 11:35:22

+0

这就是为什么我建议使用历史管理员:)看看http://weblogs.asp.net/bleroy/archive/2007/09/07/how-to-build-a-cross-browser-history-management -system.aspx 这些工作都是通过放置一个隐藏的iframe来实现的,它会在导航时触发事件 – 2010-05-27 15:11:39

+0

再次感谢Sean,我在一周前阅读了这篇文章,但它没有提供跨域返回按钮的解决方案。所以我无法更新iframe,一旦我在其他域。 – moubi 2010-05-28 09:36:09