MaintainScrollPositionOnPostback主要功能是在Asp.Net的Page中取得或設定值,指出在回傳後是否將使用者返回用戶端瀏覽器中的相同位置。簡單的說就是讓頁面在PostBack後還能保持頁面位置。
即使我們在Page中設定了MaintainScrollPositionOnPostback為True,但在最近市佔率越來越高的Chrome這個以速度快著名的Goolge瀏覽器卻是失效了。
自己在遇這個問題後,在Google找到此站提供的方式解決了我的問題:
讓Chrome瀏覽器支援Asp.Net的MaintainScrollPositionOnPostback
但此網頁已失連許久,也在Google找不到相同提供解決方法的網頁(也許有,我沒找到)。因此特地在此記錄並提供給有遇到同樣問題的朋友一個解決的辦法。
解決方法:
首先在Asp.Net中新增一個瀏覽器定義檔,我們要使用這個定義檔來根據不同瀏覽器設定不同運行環境參數。
.browser建立後預設會放在App_Browesers資料夾中。打開.browser後將以下程式碼直接複製貼上:
即使我們在Page中設定了MaintainScrollPositionOnPostback為True,但在最近市佔率越來越高的Chrome這個以速度快著名的Goolge瀏覽器卻是失效了。
自己在遇這個問題後,在Google找到此站提供的方式解決了我的問題:
讓Chrome瀏覽器支援Asp.Net的MaintainScrollPositionOnPostback
但此網頁已失連許久,也在Google找不到相同提供解決方法的網頁(也許有,我沒找到)。因此特地在此記錄並提供給有遇到同樣問題的朋友一個解決的辦法。
解決方法:
首先在Asp.Net中新增一個瀏覽器定義檔,我們要使用這個定義檔來根據不同瀏覽器設定不同運行環境參數。
.browser建立後預設會放在App_Browesers資料夾中。打開.browser後將以下程式碼直接複製貼上:
<browsers>
<browser id="Safari3" parentID="Safari1Plus">
<identification>
<userAgent match="Safari/\d+\.\d+" />
</identification>
<capture>
<userAgent match="Version/(?'version'\d+\.\d+)" />
</capture>
<capabilities>
<capability name="browser" value="Safari3" />
<capability name="version" value="${version}" />
</capabilities>
<controlAdapters>
<adapter controlType="System.Web.UI.WebControls.Menu"
adapterType="" />
</controlAdapters>
</browser>
<browser id="GoogleChrome" parentID="Safari3">
<identification>
<userAgent match="Chrome/(?'version'\d+\.\d+)" />
</identification>
<capabilities>
<capability name="browser" value="Googlebot" />
<capability name="supportsMaintainScrollPositionOnPostback" value="true" />
</capabilities>
</browser>
</browsers>
上面這段程式碼原本主要的用途是用來解決Asp.Net中的Menu控制項,在Chrom與Safari瀏覽器下顯示不完全的問題。詳情可以參考:最簡單的方法,讓 ASP.NET Menu 控件在 Google Chrome 瀏覽器上正常顯示
按照原作者的方法直接在GoogleChrome的定義中加入這一行程式碼:
<capability name="supportsMaintainScrollPositionOnPostback" value="true" />
如此即可解決MaintainScrollPositionOnPostback在Chrome瀏覽器失效的問題了,可謂一舉兩得。
沒有留言:
張貼留言