Sharepoint 2013 Javascript对象模型IE兼容性

时间:2014-05-16 12:57:05

标签: javascript internet-explorer sharepoint

我正在尝试将一些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。为null或未定义

虽然我不能确定,但​​看起来SP2013似乎支持IE9,但是看看SP维基页面源头我看到了

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

问题:SP2013是否支持IE9?如果没有,是否有另一种方法来检查页面状态是否处于编辑模式?

1 个答案:

答案 0 :(得分:2)

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

错误 SP.Ribbon。由于在执行指定代码时未加载SP.Ribbon.js,因此可能会出现未定义

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

实施例

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