SharePoint Javascript (_sp) 不会在上载到客户端 Web 部件库的文件中运行

Sharepoint Javascript (_sp) does not run in uploaded file to library for Client Web Part

本文关键字:Web 客户端 运行 文件 上载 Javascript sp SharePoint      更新时间:2023-09-26

我上传了一个文件(.htm)到我的sharepoint库。当我单击该文件时,它会将我带到一个页面并运行脚本,但是 sharepoint javascript 不起作用。当我在控制台中键入_spPageContextInfo.userId;时,它错误not defined.

当我尝试在上一个窗口(SharePoint 库)的控制台中键入_spPageContextInfo.userId;时,它会返回我的用户 ID。

关于如何让 sharepoint javascript 仍然在上传的文件中运行的任何想法?我正在运行共享点 2010

当我打开 chromes 开发工具时,我看不到包含.js文件的_layout文件夹(我在主 sharepoint 库页面看到它们)。也许有办法链接到这些?我对网页了解不多,对不起。

编辑:

我已经包括

<meta name="WebPartPageExpansion" content="full" />
<script src="/_layouts/1033/init.js"></script>
<script src="/_layouts/MicrosoftAjax.js"></script>
<script src="/_layouts/sp.core.js"></script>
<script src="/_layouts/cui.js"></script>
<script src="/_layouts/sp.ui.mylinksribbon.js"></script>
<script src="/_layouts/sp.ui.dialog.js"></script>
<script src="/_layouts/sp.ui.policy.ribbon.js"></script>
<script src="/_layouts/sp.ui.rte.js"></script>
<script src="/_layouts/sp.ribbon.js"></script>
<script src="/_layouts/sp.runtime.js"></script>
<script src="/_layouts/sp.js"></script>

现在,当我转到控制台时,我可以成功键入_spPageLoaded,但_spPagecontextInfo不是一个选项...

以下是

我发现的独立页面使用JavaScript类库和其他功能的最低资格。

您可以使用记事本或任何文本编辑器编辑页面,并将其上载到文档库。
只需确保另存为 ..ASPX

您仍然无法使用 form 元素。但这可以通过使用 SP 来克服。ClientContext 或 REST API。

<%@ Page language="C#" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<!DOCTYPE html>
<html lang="en">
  <!-- document information -->
  <head>
    <!-- meta information -->
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <!-- css: sharepoint -->
    <link rel="stylesheet" type="text/css" href="/_layouts/1033/styles/Themable/corev4.css?rev=3TRomkG1g2gMGz4rekMIQg%3D%3D"/>
    <link rel="stylesheet" type="text/css" href="/_layouts/1033/styles/Themable/search.css?rev=T%2Bhraxktc1A8EnaG5gGMHQ%3D%3D"/>
  </head>
  <!-- document content -->
  <body>
    <!-- required: SharePoint FormDigest -->
    <form runat="server">
      <SharePoint:FormDigest runat="server"></SharePoint:FormDigest>
    </form>
    <!-- required: script sources -->
    <!-- script: SharePoint -->
    <script src="/_layouts/1033/init.js"></script>
    <script src="/_layouts/1033/core.js"></script>
    <script src="/_layouts/MicrosoftAjax.js"></script>
    <script src="/_layouts/SP.Core.js"></script>
    <script src="/_layouts/SP.Runtime.js"></script>
    <script src="/_layouts/SP.js"></script>
    <script src="/_layouts/SP.UI.Dialog.js"></script>
    <script src="/_layouts/ScriptResx.ashx?culture=en%2Dus&name=SP%2ERes"></script>
    <!-- script: local -->
    <script>
      console.log(_spPageContextInfo.userId);
    </script>
  </body>
</html>

如果要保留 SharePoint 提供的功能,则需要将内容嵌入到 SharePoint 页面上。

  1. 在 SharePoint 中编辑页面
  2. 向页面添加内容编辑器 Web 部件
  3. 编辑内容编辑器 Web 部件
  4. 在右侧显示的 Web 部件属性窗格中,找到"内容链接"文本字段
  5. 粘贴您上传的.htm文件的 URL 路径(请注意,它不一定是.htm或.html文件...任何有效的文本文件都可以)
  6. 保存 Web 部件属性并停止编辑页面

然后,内容编辑器 Web 部件将在页面中显示你的内容。您的文件应包含有效的 HTML 片段,并且可以包含脚本标记。