我正在尝试将一些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?如果没有,是否有另一种方法来检查页面状态是否处于编辑模式?
答案 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');