2011-02-10 77 views
3

首先,一些背景:为什么javascript:history.go(-1);不在移动设备上工作?

我有一个应用程序向用户呈现一个搜索页面(html表单)。一旦标准填写完毕并点击搜索按钮,结果将出现在标准部分下方。在结果列表中,您可以通过点击链接转到新页面来查看单个结果的详细信息。在详细信息页面,我已经包括了返回结果的链接,像这样:

<a href="#" onclick="history.go(-1);return false">Back to Results</a> 

这在IE8/9,Safari浏览器,Firefox和Chrome在桌面上的伟大工程。但是,它不适用于我的Android手机,我的Android模拟器或iPhone 3G。我应该注意到,当我在桌面上使用链接时,我立即返回到似乎是带搜索结果的搜索页面的缓存副本,并将结果放在同一个滚动位置。在移动设备上,似乎从服务器重新加载页面,我的搜索条件消失,并且没有结果。

如果任何人有什么想法从哪里开始寻找解决方案,我会非常感激!我也可以根据需要提供更多细节。

谢谢和问候,你用的是什么方法来通滤波器您的搜索。 CN

+0

检查用于在移动设置上缓存标题?许多(大多数?)移动互联网服务提供商都有透明的代理服务器,可能会强制执行某种类型的no-cache头信息,迫使远程设备重新加载页面并导致更高的数据费用($$$ kaching $$$) – 2011-02-10 19:14:46

回答

0

? POST或GET?

如果您使用的是POST,那么您必须在他们返回时重新提交过滤器,否则您的页面将无法过滤。

尝试切换到GET并查看是否有效。

我认为重要的区别在于它正在工作(即发回给您一个页面),但您的移动设备不重新发布您的表单域?

+0

我正在使用POST - 这是我尝试构建在MS MVC3上的RESTful应用程序,所以GET/Search呈现搜索页面,POST/Search实际上运行搜索。我认为这确实与参数值有关,并且可能在移动设备上无法正常工作,这是由于Marc B建议移动提供商在标头中注入非缓存。但是,然后...它也不能在我的桌面上的模拟器上工作。我希望了解的主要原因是行为不同的原因...... – CircusNinja 2011-02-10 19:38:02

+0

啊,明白了,忽略我的回答然后:) – JamesHalsall 2011-02-10 20:29:40

1

是Android,您需要启用javascript在网页视图:

webView.getSettings().setJavaScriptEnabled(true); 
2

用途:

<a href="javascript:history.go(-1)">Back to Results</a> 

即不是在 “onclick”,但在 “href” - 这是工作

相关问题