1. 程式人生 > >將JS檔案載入到SharePoint環境中的方法

將JS檔案載入到SharePoint環境中的方法

在開發SharePoint工程的時候,少不了使用JS,SharePoint允許開發者用很多種方式載入JS程式碼,以下以JQuery和SharePoint2013為例,總結了一些將自定義的JS檔案載入到SharePoint環境中的一些方法,假設JQuery檔案已經部署到SharePoint的layouts資料夾下的JSLib資料夾下(_layouts/JSLib/jquery-1.11.0.min.js)。

1. 在Master Page中加入JS:

這個是最簡單的方法,使用SPD開啟master page,找到head部分,加入如下程式碼:

<head runat="server">
. . .
<SharePoint:ScriptLink language="javascript" name="JSLib/jquery-1.11.0.min.js" Defer="false" runat="server"/>
. . .
</head>
這樣新增js,會在所有使用master page的頁面上載入js。如果希望只是在某個頁面上引入js,可以使用下面的方法。

2. 在Application Page(應用程式頁面)中載入js:

首先這個application page要繼承master page,然後在其中的PageHead這個 content place holder中新增如下程式碼(因為是SharePoint 2013,所以路徑中包含15,這個方法不能用在Sandbox中):

<asp:Content ID="PageHead" ContentPlaceHolderID="PlaceHolderAdditionalPageHead"runat="server">
    <script src="/_layouts/15/JSLib/jquery-1.11.0.min.js" type="text/javascript"></script>
</asp:Content>

3. 使用custom action新增js。

 使用VS工程向SharePont新增一個custom action,向其中的elements.xml中新增如下配置(因為是SharePoint 2013,所以路徑中包含15,這個方法不能用在Sandbox中):

<CustomAction
    ScriptSrc="/_layouts/15/JSLib/jquery-1.11.0.min.js"
    Location="ScriptLink"
    Sequence="100">
</CustomAction>
4. 在後臺程式碼的頁面事件中動態載入js:
protected override void OnPreRender(EventArgs e)
{
    //註冊"_layouts/JSLib/jquery-1.11.0.min.js"
    ScriptLink.Register(this.Page, "JSLib/jquery-1.11.0.min.js", false);
    base.OnPreRender(e);
}

5. 使用SharePoint 2013的Script Editor Web Part載入js(SharePoint 2010中是Content Editor Web Part)

6. 使用RequireJS載入JS,這個方法與2一樣,也是在application page中新增js,但是這個方法可以防止jquery的衝突。

首先建立一個SharePoint專案,資料夾結構如下:


其中require.js是RequireJS的原始檔,jquery-1.11.0.min.js是JQuery的原始檔,main.js是requirejs的配置檔案,其中配置jquery的路徑,同時使用noConflict避免jquery的衝突:


最後一個LoadJQuery.js檔案是頁面“LoadJQuery.aspx”使用的js檔案,其中簡單的定義了兩個方法:


其中第一個方法getJqueryVersion請求jquery檔案,使用myjquery物件替代了$,然後顯示請求的jquery的版本;第二個方法判斷$這個全域性物件是否存在。

最後一個檔案是“LoadJQuery.aspx”,這個頁面引用了requirejs,添加了兩個button,第一個button呼叫“getJqueryVersion”方法,第二個呼叫“noJquery”方法:

<asp:Content ID="PageHead" ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server">
    <script type="text/javascript" src="/_layouts/15/SharePoint.TestLab.JQuery/js/require.js" data-main="/_layouts/15/SharePoint.TestLab.JQuery/js/main"></script> //載入requirejs檔案,同時指定配置檔案main.js
    <script type="text/javascript" src="/_layouts/15/SharePoint.TestLab.JQuery/js/LoadJQuery.js"></script> //載入LoadJQuery.js
</asp:Content>

<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
    Test JS
    <button onclick="getJqueryVersion();return false;">Require</button> //第一個button呼叫getJqueryVersion方法
    <button onclick="noJquery();return false;">No jquer</button>    //第二個button呼叫noJquery方法
</asp:Content>

頁面效果是:


當點選Require按鈕時,彈出:


當點選No jquery按鈕的時候彈出:


可以看到兩個方法互不影響,jquery只在getJqueryVersion方法中有效。

相關推薦

JS檔案載入SharePoint環境方法

在開發SharePoint工程的時候,少不了使用JS,SharePoint允許開發者用很多種方式載入JS程式碼,以下以JQuery和SharePoint2013為例,總結了一些將自定義的JS檔案載入到SharePoint環境中的一些方法,假設JQuery檔案已經部署到Sha

如何class檔案載入在JVM

    如下圖所示是ClassLoader載入一個class檔案到JVM時需要經過的步驟。          第一個階段是找到.class檔案並把這個檔案包含的位元組碼載入到記憶體中。     第二個階段又可以分為三個步驟,分別實位元組碼驗證、Class類資料結構及相應的記憶

動態引入的外部 JS 檔案在各瀏覽器載入順序不一致問題解決

標準參考 無。 問題描述 頁面開發過程中,為了避免頁面載入時引入過多外部 JS 檔案,導致阻塞頁面內容下載及渲染的情況出現。將會採用頁面內容載入完成後,動態載入外部 JavaScript 檔案的方法來解決此類問題。但是,需要注意的是,常用動態插入外部指令碼檔案的方法在各瀏覽器中的執行順序

前端設計關於外部js檔案載入的速度優化

  在一般情況下,許多人都是將<script>寫在了<head>標籤中,而許多瀏覽器都是使用單一的執行緒來載入js檔案的,從上往下,從左往右。 若是載入過程出錯,那麼網頁就會阻塞,就像許多網站用Google的CDN庫,而我們在牆內訪問一樣。頁面不會出來

在myeclipse對匯入js檔案時報錯的解決方法

一:今天在MyEclipse中加入jquery-1.4.2.js時,出現以下錯誤,附上圖片和錯誤程式碼:error1:DescriptionResourcePathLocationTypeSyntax error on token "undefined", invalid F

Excel檔案匯入MySQL資料庫的方法

將Excel檔案匯入MySQL資料庫的方法 1、簡介 本部落格給大家分享一個實用的小技能,我們在使用資料庫時常常需要將所需的Excel資料新增進去,如果按照傳統的方法將會費時費力,所以給大家分享匯入Excel資料的技能。 2、實際操作 1)首先需要下載一個數據庫管理工具

Java讀js檔案,獲取object的值

資料 classes=[ { "name":"class1", "student":["joke1","joke2"] },{ "name":"class2", "student":["joke3","joke4"] }] Java讀取資料 /*獲取執

selenium 整合 spring 使用maven 配置檔案打包到jar

<build> <defaultGoal>compile</defaultGoal> <resources> <resource> <directory>src/main/j

node之實現一個隨專案啟動資料庫配置載入到記憶體

乾貨,直接上程式碼: 專案結構: 2.建立此快取介面,將快取封裝到一個物件中:dataCfg。 3.上圖中快取物件dataCfg = await getDataBaseCfg()是將這個方法封裝到了工具類中,如下圖: 4.在app.js中應用,啟動的時候會

React Native 匯入獨立模組ES6寫法 js檔案模組化方式

建立獨立的js檔案使用export關鍵字將自定義的元件匯出給外部使用,LoginModule 是自定義的匯出使用的類名字,extendsTextInputDemo,是繼承自真實的自定義元件類             export default class LoginMo

通過Load table命令資料檔案載入到Sybase IQ資料庫裡面的Python指令碼

CREATE TABLE poc_app.sys_ftp_cfg (     ftp_id              varchar(100) NOT NULL,          --話單檔名標記     ftp_cycle_id        varchar(1) NO

jQuery的js檔案載入失敗的原因

問題如下:http://localhost:8080/Text1/init.jspJQuery檔案所放的位置,超出了外部瀏覽器訪問的許可權,改正的辦法就是把JS檔案放到域名管理的範圍就好了如下:同時在Eclipse中,原來的目錄:也要重新整理一下成:再重啟伺服器,執行才可以,

java POI txt檔案匯入到excel

簡單demo 資料結構:包含三個string型別的資料,且都被逗號分隔開,匯入到excel中 ValueObject .java 類 package XlsDto2Excel; public class ValueObject { private String nam

解決 txt檔案匯入到sqlserver亂碼問題

    昨天遇到將txt檔案匯入到sqlserver中亂碼的問題,問題原因是因為資料庫的編碼格式跟txt不一樣,要想解決這個問題很簡單,就是把txt檔案的編碼跟資料庫的編碼改成一致的,但是,sqlserver裡面的編碼是

html、css、js檔案載入順序及執行情況

今天看書,看到html,css,js載入執行情況,發現自己並不是真正的瞭解,網上搜了半小時依然未弄明白,就在這時我找到了讓我恍然大悟的一段話,如下: HTML頁面載入和解析流程 1. 使用者輸入網址(假設是個html頁面,並且是第一次訪問),瀏覽器向伺服器發出請求,伺服器返回html檔案。 2. 瀏覽器開始

java properties 檔案 載入到記憶體

在做專案和應用程式的時候,經常會將一些常量或者連結資料庫、伺服器的資訊儲存在properties檔案中。以便這些資訊發生改變的時候,執行修改properties檔案,而不需要需該程式程式碼。  舉例子: data.properties key=1234567890abcde

Android如何檔案打包到APK

開發程式時一般會將視訊音訊等檔案放在assets、或raw下,但在2.3以前會有檔案大小的限制,最大不能超過1M。如果在2.2的系統裡想放超大檔案該怎麼辦呢,,,我這有個方法(我也是在搜遍了整個網際網路,啥也沒找到的情況下自己摸索出來的)。可以將超大檔案比如100M,放在s

apache 下 圖片顯示不完整 JS檔案載入不完全的解決辦法

 最近用apache除錯程式的時候總莫名其妙的出現JS錯誤, firebug檢視JS顯示JS根本就沒載入完,還有圖片顯示不完整的問題如下圖: 後在在網上找到了解決的辦法: apache的一個bug造成的。到apache的主配置檔案httpd.conf裡將下面一條指令前的#去掉即可。 Enabl

如何實現JS動態新增的TR的值傳到後臺並批量插入

在我的上一篇文章當中,已經在靜態頁面中實現了JS動態新增刪除TR。在實際工作中,更多的是需要將JS所新增的tr中的值儲存至資料庫中。下面我將介紹在SSH框架中如何實現這一功能需求。(以下均由我所做的實際專案給出功能程式碼) 在JSP中,JS程式碼會稍有變化。 funct

如何xls檔案匯入到mongoDB?

1、將xls檔案另存為csv格式的文字檔案,注意檔案中如果有中文最好選擇UTF-8檔案格式(若不這樣做匯入資料時會出錯的); 2、在Linux的shell中通過執行命令:mongoimport -d mydb -c testData --type csv --file xx