2010-10-06 19 views
8

是否可以禁用ASP.NET中的browserCaps功能?是否可以禁用ASP.NET中的browserCaps功能?

我希望我的網站能夠可靠和精確地服務,因爲我已將它定義到所有瀏覽器,而不管它們的功能如何。

如果他們的瀏覽器無法支持該網站,那就是他們的問題。我的網站不應該是一些試圖降低自己以適應已停用的客戶端的方法。

這看起來非常令人沮喪,因爲它似乎有蜘蛛運氣不好,我猜想爬行網站,得到較低版本的網站導致輸出緩存服務剝離文件。

+0

@Svend你是否也知道更改用戶代理可以改變捆綁/縮小輸出?在[本SO貼子](http://stackoverflow.com/q/21991736/1810243)中涵蓋,並且更深入一點[在此博客文章中](http://www.mikesmithdev.com/blog/aspnet-bundling -changes輸出與 - 用戶代理-尤里卡-1 /)。 – MikeSmithDev 2014-09-30 12:48:31

+0

@MikeSmithDev不,但我並不感到驚訝。我以前曾與phantomjs和這個「功能」爭吵過。我正在看的目前化身是HTML文本編碼,我們看到'ø'被渲染爲Chrome中的Ã ¸或IE中的ø,有趣的是當我們在本地運行網站時渲染被逆轉(IE獲得這兩個實體,而Chrome獲得了這一個)。 – Svend 2014-09-30 18:21:45

+2

@MikeSmithDev使用browsercap文件切換功能可能是我在過去10分鐘內在Web技術中看到的最可怕的事情。 – Svend 2014-09-30 18:23:51

回答

2

你可以把ClientTarget = 「uplevel」 在Page指令或Page.Init

<%@ Page ClientTarget="uplevel" ...... %> 

Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) _ 
     Handles Me.Init 
    Page.ClientTarget = "uplevel" 
End Sub 

另一種選擇是一個.browser文件添加到您的網站,在文件夾App_Browsers(一個默認的Asp.NET文件夾)。它應該使用正則表達式定位所有瀏覽器,並通過添加功能以某種方式禁用正常的瀏覽器檢測。我只使用它來在Safari中呈現菜單控件的正確方式,但我不完全知道如何爲所有輸出同時執行此操作。

2

我目前嘗試的一個瘋狂的解決方法是注入我們自己的HttpCapabilitiesDefaultProvider,它返回一個靜態的HttpBrowserCapabilities。然後訣竅是總是返回相同的功能對象,所以通過在使用IE9時調用base.GetBrowserCapabilities,我們使用Newtonsoft創建序列化,並通過將該字符串保存在源代碼中,我們可以構建IE9的功能對象,而不管什麼瀏覽器發起請求。

public class CustomerHttpCapabilitiesProvider : HttpCapabilitiesDefaultProvider 
{ 
    private const string m_IE9Definition = "{\r\n \"$type\": \"System.Web.Mobile.MobileCapabilities, System.Web.Mobile\",\r\n \"UseOptimizedCacheKey\":..... "; 
    private readonly static Lazy<MobileCapabilities> m_Capabilities = new Lazy<MobileCapabilities>(() => JsonConvert.DeserializeObject<MobileCapabilities>(m_IE9Definition), true); 

    public override HttpBrowserCapabilities GetBrowserCapabilities(HttpRequest request) 
    { 
     return m_Capabilities.Value; 
    } 
} 

,然後在Application_Start分配提供商:

HttpCapabilitiesBase.BrowserCapabilitiesProvider = new CustomerHttpCapabilitiesProvider(); 

這還沒有真正測試然而,不確定究竟是這種變化的影響。

+0

對我來說聽起來不像是最接近禁用它的那種瘋狂。 – 2014-10-01 12:47:29

相關問題