2011-02-10 111 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」 - 這是工作

相關問題