【问题标题】:Sharepoint 2013 Javascript object model IE compatibilitySharepoint 2013 Javascript 对象模型 IE 兼容性
【发布时间】:2014-05-20 20:29:52
【问题描述】:

我正在尝试将一些 JS 代码注入 wiki 页面,以允许使用 MathJax 库呈现 LaTex 标记。玩了一会儿后,我意识到我需要在页面未处于编辑模式时运行 MathJax 脚本。看来 SP2013 的 MS JS 客户端库有一种简洁的检查方式

var InEditMode = SP.Ribbon.PageState.Handlers.isInEditMode();

if(!InEditMode){

 // load MathJax library from CDN
}

这适用于最新版本的 Chrome、Firefox 和 IE10+,但在 IE9 及以下版本上失败。报告的 JS 错误是 SP.Ribbon。为空或未定义

虽然我不能确定,但​​似乎 SP2013 支持 IE9,但是查看我看到的 SP wiki 页面源的标题

<meta http-equiv="X-UA-Compatible" content="IE=10" />

问题:SP2013是否支持IE9?如果不是,是否有其他方法可以检查页面状态是否处于编辑模式?

【问题讨论】:

  • 你设法让它工作了吗?我正在尝试做同样的事情,但找不到任何正常工作的解决方案。我在这里提出了一个问题:stackoverflow.com/questions/23865427/… 如果你能在那里给出你的解决方案,那就太好了。谢谢。

标签: javascript internet-explorer sharepoint


【解决方案1】:

根据Plan browser support in SharePoint 2013 SharePoint 2013 完全支持IE9浏览器。

错误SP.Ribbon。为 null 或未定义可能是因为在执行指定代码时未加载 SP.Ribbon.js

使用SP.SOD.executeOrDelayUntilScriptLoaded(func, depScriptFileName) Method 确保在加载 JavaScript 库时执行用户定义的代码。

示例

ExecuteOrDelayUntilScriptLoaded(function(){
    var InEditMode = SP.Ribbon.PageState.Handlers.isInEditMode();
    if(!InEditMode){
       //...
    }
}, 'SP.Ribbon.js');

【讨论】:

  • 对我来说工作得很好——我猜 IE9 只是加载脚本的方式不同,而且它适用于其他浏览器纯属运气。现在可以按预期工作 - 非常感谢
  • 是的,IE9 渲染引擎在加载脚本时的工作方式似乎有所不同,很高兴这对您有所帮助!
猜你喜欢
  • 1970-01-01
  • 2014-10-06
  • 2016-01-28
  • 2011-11-16
  • 2010-12-26
  • 1970-01-01
  • 1970-01-01
  • 2013-08-13
相关资源
最近更新 更多