带有内容编辑器 Web 部件的 CSOM



我按照这个CSOM视频 https://www.youtube.com/watch?v=Cr8wht3z_BA 创建了一个脚本文件。

<script src='https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.min.js'></script>
<script type='text/javascript' src='_layouts/15/sp.js'></script>
<script lang='javascript' type='text/javascript'>
/// <reference path="C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions15TEMPLATELAYOUTSMicrosoftAjax.js" />
/// <reference path="C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions15TEMPLATELAYOUTSSP.debug.js" />
/// <reference path="C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions15TEMPLATELAYOUTSSP.Core.debug.js" />
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function () {console.log('Init SP Client Context')});
SP.SOD.executeOrDelayUntilScriptLoaded('', 'sp.js');
var ctx = new SP.ClientContext.get_current();
var web = ctx.get_web();
console.log('web: ' + web);
</script>

但是在内容编辑器 Web 部件中加载它后,我收到以下错误。

Init SP Client Context
init.js?rev=iUHQ88pWz8HFvRXFm5n84A%3D%3DTAG0:1 Uncaught TypeError: b is not a function
at ExecuteOrDelayUntilEventNotified (init.js?rev=iUHQ88pWz8HFvRXFm5n84A%3D%3DTAG0:1)
at Object.ExecuteOrDelayUntilScriptLoaded [as executeOrDelayUntilScriptLoaded] (init.js?rev=iUHQ88pWz8HFvRXFm5n84A%3D%3DTAG0:1)
at default.aspx:655
ExecuteOrDelayUntilEventNotified @ init.js?rev=iUHQ88pWz8HFvRXFm5n84A%3D%3DTAG0:1
ExecuteOrDelayUntilScriptLoaded @ init.js?rev=iUHQ88pWz8HFvRXFm5n84A%3D%3DTAG0:1
(anonymous) @ default.aspx:655
mquery.js?rev=iT%2FLunFUsFugTeo%2FAjQL5Q%3D%3DTAG0:1 [Violation] Added synchronous DOM mutation listener to a 'DOMSubtreeModified' event. Consider using MutationObserver to make the page more responsive.
bind @ mquery.js?rev=iT%2FLunFUsFugTeo%2FAjQL5Q%3D%3DTAG0:1
(anonymous) @ mquery.js?rev=iT%2FLunFUsFugTeo%2FAjQL5Q%3D%3DTAG0:1
MQueryResultSet.bind @ mquery.js?rev=iT%2FLunFUsFugTeo%2FAjQL5Q%3D%3DTAG0:1
MQueryResultSet.one @ mquery.js?rev=iT%2FLunFUsFugTeo%2FAjQL5Q%3D%3DTAG0:1
(anonymous) @ mquery.js?rev=iT%2FLunFUsFugTeo%2FAjQL5Q%3D%3DTAG0:1
(anonymous) @ mquery.js?rev=iT%2FLunFUsFugTeo%2FAjQL5Q%3D%3DTAG0:1
$_global_mquery @ mquery.js?rev=iT%2FLunFUsFugTeo%2FAjQL5Q%3D%3DTAG0:1
(anonymous) @ mquery.js?rev=iT%2FLunFUsFugTeo%2FAjQL5Q%3D%3DTAG0:1
mquery.js?rev=iT%2FLunFUsFugTeo%2FAjQL5Q%3D%3DTAG0:1 [Violation] Added synchronous DOM mutation listener to a 'DOMNodeRemoved' event. Consider using MutationObserver to make the page more responsive.
bind @ mquery.js?rev=iT%2FLunFUsFugTeo%2FAjQL5Q%3D%3DTAG0:1
(anonymous) @ mquery.js?rev=iT%2FLunFUsFugTeo%2FAjQL5Q%3D%3DTAG0:1
MQueryResultSet.bind @ mquery.js?rev=iT%2FLunFUsFugTeo%2FAjQL5Q%3D%3DTAG0:1
MQueryResultSet.one @ mquery.js?rev=iT%2FLunFUsFugTeo%2FAjQL5Q%3D%3DTAG0:1
(anonymous) @ mquery.js?rev=iT%2FLunFUsFugTeo%2FAjQL5Q%3D%3DTAG0:1
(anonymous) @ mquery.js?rev=iT%2FLunFUsFugTeo%2FAjQL5Q%3D%3DTAG0:1
$_global_mquery @ mquery.js?rev=iT%2FLunFUsFugTeo%2FAjQL5Q%3D%3DTAG0:1
(anonymous) @ mquery.js?rev=iT%2FLunFUsFugTeo%2FAjQL5Q%3D%3DTAG0:1
sp.ribbon.js?rev=Fl2mDCI2EuFibC1HILdAFw%3D%3DTAG0:2 Uncaught TypeError: this.$K_3.customFromJson is not a function
at SP.Ribbon.CalendarListPageComponent.SP.Ribbon.ListViewWebPartPageComponent (sp.ribbon.js?rev=Fl2mDCI2EuFibC1HILdAFw%3D%3DTAG0:2)
at Function.Type.initializeBase (ScriptResource.axd?d=0q0DXhSRHN48U2mYVoycVizcI6W7PYLDvhhWa-FBB_M6B98agZYZ5S8yIFX2lx4T0jifjCZeHY4O5hP2l0przC-Vw5fvi-LAbXEyVcolNdkqhBtKo62zHKPUyG0HM6OYZ5persFq-4Wm6WMlOhFP7OTKzCmOv6LzLZ4tTDoehSu6RIHrn9afYjBtTgPLm-oX0&t=ffffffffa580202a:5)
at SP.Ribbon.CalendarListPageComponent.SP.Ribbon.GenericListWebPartPageComponent (sp.ribbon.js?rev=Fl2mDCI2EuFibC1HILdAFw%3D%3DTAG0:2)
at Function.Type.initializeBase (ScriptResource.axd?d=0q0DXhSRHN48U2mYVoycVizcI6W7PYLDvhhWa-FBB_M6B98agZYZ5S8yIFX2lx4T0jifjCZeHY4O5hP2l0przC-Vw5fvi-LAbXEyVcolNdkqhBtKo62zHKPUyG0HM6OYZ5persFq-4Wm6WMlOhFP7OTKzCmOv6LzLZ4tTDoehSu6RIHrn9afYjBtTgPLm-oX0&t=ffffffffa580202a:5)
at new SP.Ribbon.CalendarListPageComponent (sp.ribbon.js?rev=Fl2mDCI2EuFibC1HILdAFw%3D%3DTAG0:2)
at _initTRAWebPartWPQ4 (default.aspx:1224)
at NotifyEventAndExecuteWaitingJobs (init.js?rev=iUHQ88pWz8HFvRXFm5n84A%3D%3DTAG0:1)
at NotifyScriptLoadedAndExecuteWaitingJobs (init.js?rev=iUHQ88pWz8HFvRXFm5n84A%3D%3DTAG0:1)
at sp.ribbon.js?rev=Fl2mDCI2EuFibC1HILdAFw%3D%3DTAG0:2

该视频适用于 SP2013,但我的环境是 2016。

试试这个。

///<script type='text/javascript' src='_layouts/15/sp.js'></script>
<script src='https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.min.js'></script>
<script lang='javascript' type='text/javascript'>
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function () {console.log('Init SP Client Context')});
SP.SOD.executeOrDelayUntilScriptLoaded('', 'sp.js');
var ctx = new SP.ClientContext.get_current();
var web = ctx.get_web();
console.log('web: ' + web);
</script>

脚本可以直接插入到脚本编辑器/内容编辑器 Web 部件中。

如何使用脚本编辑器 Web 部件向页面添加 JavaScript 代码

最新更新