SharePoint Online 為Modern Page新增指令碼

霖雨發表於2022-02-08

  前言

  眾所周知,如果我們想向SharePoint 頁面新增指令碼,最方便的便是經典頁面,新增方式主要有內容編輯器Web部件或者直接使用SharePoint Designer。

  但是,如果頁面是Modern 頁面,我們沒辦法向裡面新增指令碼,無論是兩種方式都沒辦法做到。當然,除了SharePoint Framework開發的Webpart。

  正文

  1.這裡,我們就開發了一個基於SharePoint Framework的WebPart,可以幫助我們向SharePoint Modern頁面新增指令碼,來完成一些需求。

  Tips:WebPart的功能非常簡單,就是向頁面中新增了一個Div元素,ID可以在右側的屬性皮膚裡配置。同時,可以新增一個外部JavaScript檔案引用,也是在右側的屬性皮膚裡進行配置。

SharePoint Online 為Modern Page新增指令碼

  2.一般來說,我們會在這個引入的外部JavaScript檔案中新增我們需要的程式碼,諸如獲取SharePoint Online列表專案,引入JQuery庫,等等。

  我這裡也做了一個簡單的例子,就是引用JQuery和SharePoint Plus檔案,前者用來操作DOM,後者用來請求資料。

  Tips:這裡面要說的是loadScript這個方法,是同步新增外部引用其它JS的方法,為的是新增引用以後回撥函式,防止非同步造成還沒新增完引用,就執行了函式。

SharePoint Online 為Modern Page新增指令碼

  3.我們可以看一下這個效果,如下圖:

  1)首先是測試列表的測試資料截圖:

SharePoint Online 為Modern Page新增指令碼

  2)然後是剛剛進入頁面的效果,會是一個loading的效果,一般會有1秒左右的載入時間,當然也取決於你的指令碼的功能和邏輯的複雜度:

SharePoint Online 為Modern Page新增指令碼

  3)然後是資料載入出來,顯示的效果,如下圖:

SharePoint Online 為Modern Page新增指令碼

  結束語

  這個,是霖雨無聊間做的一個小部件,覺得蠻有意思的就分享給大家,有需要的自己可以嘗試一下。

  Github:linyus/LinyuInjectionScriptWebpart (github.com)

相關文章