【问题标题】:ASPMenu in Safari 7.1 Not Rendering Properly in SharePoint 2010Safari 7.1 中的 ASPMenu 在 SharePoint 2010 中无法正确呈现
【发布时间】:2014-11-14 04:43:06
【问题描述】:

是否有其他人遇到过最新版本的 Mac 和 iOS8 上的 Safari 7.1 破坏 SharePoint 2010 中的 ASPMenu 控件的问题? ASPMenu 之前运行良好,但现在更新后它决定不正确地呈现内容。我已经尝试设置 Page.ClientTarget = "uplevel",并修改 compat.browser 文件以包含 Safari 的适配器 "System.Web.UI.WebControls.Menu",但是这两个选项都无法帮助解决问题。

有人可以帮忙吗?在 Safari 更新之前,菜单运行良好。谢谢!

【问题讨论】:

  • 值得注意的是,这修复了带有 Safari 6.2 的 SharePoint 2007 中的相同问题。有一个答案提到这适用于 2007 年,但已被删除。如果我没有看到那个答案,我就不会找到解决我的 SP 2007 问题的方法。

标签: sharepoint sharepoint-2010 safari aspmenu


【解决方案1】:

最终找出问题所在。过去,服务器看到的 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”

【讨论】:

  • 这是一个很棒的答案。有关为什么会发生这种情况的更多信息(以及您可能会在 iOS 8 中看到的其他问题),stackoverflow.com/a/25979199/3486353 也很有帮助。
猜你喜欢
  • 1970-01-01
  • 2012-04-01
  • 2020-05-02
  • 2022-01-02
  • 2015-04-15
  • 1970-01-01
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
相关资源
最近更新 更多