2014-09-19 60 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