【问题标题】:Post to SharePoint List HTML/js Web Form发布到 SharePoint 列表 HTML/js Web 表单
【发布时间】:2017-08-04 02:04:01
【问题描述】:

我正在用头撞墙。我查看了很多示例,但无法让它发挥作用。

我正在尝试使用带有 javascript 基础的简单 HTML 页面(没有 C#/ASPX,不是 Visual Studio 解决方案或 SharePoint Designer 解决方案。)将项目添加到 SharePoint 列表。我的问题似乎是让 'SP.Runtime.js' & 'SP.js' 文件加载到我的 javascript 中。我这么说是因为在我使用的示例中 (Here),当我得到包含“SP.Data.WorkflowTasksItem”的行时,调试器会抛出一个 SP 未定义错误。

我的研究表明我需要包含来自 SharePoint 网站的 SP javascript 文件。我在下面添加了这段代码以从 Sharepoint 服务器中提取两个 js 文件,但它开始执行第一个 getScript,然后停止,没有任何错误消息或任何登录到控制台。

这是我的 javascript:

//  js/index.js
$(document).ready(function() {
    $('#request_form').bootstrapValidator({
        submitHandler: function(validator, form, submitButton) {
            //Call CreateListItem function once sp.js is loaded
            ExecuteOrDelayUntilScriptLoaded(createListItem, "sp.js");
        }
    }
}

这是我的html头

<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <link rel='stylesheet prefetch' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css'>
    <link rel='stylesheet prefetch' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css'>
    <link rel='stylesheet prefetch' href='https://cdnjs.cloudflare.com/ajax/libs/jquery.bootstrapvalidator/0.5.0/css/bootstrapValidator.min.css'>
    <link rel="stylesheet" href="css/style.css">

    <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
    <script src='https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js'></script>
    <script src='https://cdnjs.cloudflare.com/ajax/libs/bootstrap-validator/0.4.5/js/bootstrapvalidator.min.js'></script>
    <script type='text/javascript' src='/_layouts/15/sp.runtime.js'></script>
    <script type='text/javascript' src='/_layouts/15/sp.js'></script>
    <script src='js/index.js'></script>
</head>

使用新代码,我得到一个参考错误:

未捕获的 ReferenceError:未定义 ExecuteOrDelayUntilScriptLoaded

【问题讨论】:

    标签: javascript sharepoint-2013 sharepoint-list


    【解决方案1】:

    您可以在 HTML 文件的部分引用 SP.JS 和 SP.RUNTIME.JS。

    <script type="text/javascript" src="/_layouts/15/sp.runtime.js"></script>
    <script type="text/javascript" src="/_layouts/15/sp.js"></script>
    

    在 javascript 代码中,您可以使用 ExecuteOrDelayUntilScriptLoaded() 函数来调用 createListItem。

    如下sn-p:

    //Function to create List Item
    function createListItem() {
    alert('List Item Created');
    }
    
    //Call CreateListItem function once sp.js is loaded
    ExecuteOrDelayUntilScriptLoaded(createListItem, "sp.js");
    

    【讨论】:

    • 感谢您的回复。我进行了您建议的更改,并收到 ExecuteOrDelayUntilScriptLoaded 的参考错误。我在我的问题中添加了更多细节,希望能发现我的错误。
    • @B-Ray:如果您的 SharePoint 网站中存在该页面,您可以检查开发人员工具以确保在打开页面时实际加载了脚本文件。理想情况下它应该工作。我不知道您的 SharePoint 设置,所以我不完全确定您收到此错误的原因。您可以在任何内容编辑器 Web 部件中添加此 HTML 文件并检查它是否在那里工作。
    • 我必须添加对 MicrosoftAjax.js 的引用才能使其正常工作。 我现在收到 Forbidden 403 错误,但这与这篇文章无关.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多