我正在尝试将一些 JS 代码注入(inject) 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 wiki页面源代码的标题我发现
<meta http-equiv="X-UA-Compatible" content="IE=10" />
问题:SP2013支持IE9吗?如果不是,是否有其他方法来检查页面状态是否处于编辑模式?
最佳答案
根据Plan browser support in SharePoint 2013 SharePoint 2013 完全支持IE9
浏览器。
错误SP.Ribbon。 is null 或 undefined 可能会发生,因为执行指定代码时未加载 SP.Ribbon.js
。
使用SP.SOD.executeOrDelayUntilScriptLoaded(func, depScriptFileName) Method确保加载 JavaScript 库时执行用户定义的代码。
示例
ExecuteOrDelayUntilScriptLoaded(function(){
var InEditMode = SP.Ribbon.PageState.Handlers.isInEditMode();
if(!InEditMode){
//...
}
}, 'SP.Ribbon.js');
关于javascript - Sharepoint 2013 Javascript 对象模型 IE 兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23695553/