2017-03-13 47 views
0

我正在靠牆撞我的頭。我已經看過很多例子,無法讓這個工作。發佈到SharePoint列表HTML/js Web表單

我想用一個JavaScript基礎(沒有C#/ ASPX,不是Visual Studio解決方案或SharePoint Designer解決方案)的簡單HTML頁面將項目添加到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> 

有了新的代碼,我得到一個參考錯誤:

Uncaught ReferenceError: ExecuteOrDelayUntilScriptLoaded is not defined

回答

0

你可以請參閱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。

像下面片段:

//Function to create List Item 
function createListItem() { 
alert('List Item Created'); 
} 

//Call CreateListItem function once sp.js is loaded 
ExecuteOrDelayUntilScriptLoaded(createListItem, "sp.js"); 
+0

謝謝您的答覆。我做了你建議的更改,並且得到了ExecuteOrDelayUntilScriptLoaded的引用錯誤。我在我的問題中添加了更多細節,希望能夠發現我的錯誤。 –

+0

@ B-Ray:如果頁面出現在您的SharePoint網站中,您可以檢查開發人員工具以確保頁面打開時實際上正在加載腳本文件。理想情況下,它應該工作。我不知道你的SharePoint安裝程序,所以我不完全確定你爲什麼得到這個錯誤。您可以在任何內容編輯器Web部件中添加此HTML文件,並檢查它是否可以在此處使用。 –

+0

我不得不添加一個對MicrosoftAjax.js的引用才能使它工作。 我現在正在收到Forbidden 403錯誤,但這與此無關帖子。 –