2014-09-19 78 views
10

是否有其他人遇到過在Mac和iOS8上使用Safari 7.1的最新版本在SharePoint 2010中打破ASPMenu控件的問題? ASPMenu在手邊工作得很好,但現在在更新之後,它決定錯誤地呈現內容。我試着設置Page.ClientTarget =「uplevel」,並修改compat.browser文件以包含適用於Safari的適配器「System.Web.UI.WebControls.Menu」,但這兩個選項都不能幫助解決這個問題。Safari 7.1中的ASPMenu在SharePoint 2010中未正確呈現

任何人都可以幫忙嗎?菜單在Safari更新之前完全正常工作。謝謝!

+0

值得注意的是,這種解決同樣的問題SharePoint 2007中與Safari 6.2。有一個答案提到這與2007年一起工作,被刪除。如果我沒有看到答案,我不會在SP 2007中找到解決方案。 – stoj 2014-10-21 16:38:11

回答

16

最終找出問題所在。過去,服務器在Safari上看到的瀏覽器ID是「Safar1Plus」。這與在compat.browser文件中的條目相關的上市:

<browser id="Safari2" parentID="Safari1Plus"> 
    <controlAdapters> 
     <adapter controlType="System.Web.UI.WebControls.Menu" adapterType="" /> 
    </controlAdapters> 
</browser> 

Safari瀏覽器7.1不再聯繫到這個瀏覽器ID,並且現在已經更新爲「Safari60」。我發現了這一點,我的自定義SharePoint頁面上的JavaScript做一個簡單的命令:

alert("<%=Request.Browser.Id %>"); 

這告訴我該服務器發現新的瀏覽器ID。它現在報告爲「Safari60」。然後,我回到了我的下web應用程序的compat.browser文件,並增加了一個新的瀏覽器,並參考了新的瀏覽器ID:

<browser refID="Safari60"> 
    <controlAdapters> 
     <adapter controlType="System.Web.UI.WebControls.Menu" adapterType="" /> 
    </controlAdapters> 
</browser> 

有一次,我保存了compat.browser文件,這個新此外,Safari瀏覽器7.1是現在像過去一樣開心並呈現ASPMenu。希望這有助於!

的SP瀏覽器定義文件的默認位置在「C:\的Inetpub \ wwwroot的\ WSS \ VirtualDirectories \\ App_Browsers文件\ compat.browser」

+0

這是一個很棒的答案。有關爲何發生這種情況的更多信息(以及您可能在iOS 8中看到的其他問題),http://stackoverflow.com/a/25979199/3486353也非常有幫助。 – 2014-10-20 20:23:58