【问题标题】:CSOM with Content Editor Web Part带有内容编辑器 Web 部件的 CSOM
【发布时间】:2019-12-15 09:45:48
【问题描述】:

我关注了这个 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 Files\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\LAYOUTS\MicrosoftAjax.js" />
/// <reference path="C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\LAYOUTS\SP.debug.js" />
/// <reference path="C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\LAYOUTS\SP.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的。

【问题讨论】:

    标签: sharepoint csom sharepoint-2016


    【解决方案1】:

    试试这个。

    ///<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>
    

    脚本可以直接插入脚本编辑器/内容编辑器webpart。

    How to Add JavaScript code to a Page using the Script Editor Web Part

    【讨论】:

    • 感谢您的回复,但现在我在var ctx = new SP.ClientContext.get_current(); 上收到了SCRIPT5007: Unable to get property 'get_current' of undefined or null reference
    • 这主要是由于 SharePoint js 未正确加载或自定义 js 在 SharePoint js 完全加载之前执行。只需在 SharePoint webpart 页面/wiki 页面中测试脚本。
    猜你喜欢
    • 2012-03-13
    • 1970-01-01
    • 2019-07-14
    • 2016-10-21
    • 2012-09-15
    • 2017-11-29
    • 2012-11-08
    • 2012-10-06
    • 2017-04-12
    相关资源
    最近更新 更多