【问题标题】:Programmatically Edit and Programmatically Save Edited Wiki Page in Sharepoint 2013在 Sharepoint 2013 中以编程方式编辑和以编程方式保存已编辑的 Wiki 页面
【发布时间】:2015-10-27 15:31:37
【问题描述】:

我通过嵌入代码在 Sharepoint 2013 wikipage 中插入了 javascript 代码。

基本的javascript代码将行追加到表中,代码是

var myTable= document.getElementById('myTable');
myTable.innerHTML += myRecord;

其中变量 myRecord 包含要附加的行的 html 代码,html 代码类似于

<tr><td>my cell</td><td>my cell 2</td></tr>

代码按预期工作并将行附加到表“myTable”。

但是当我点击 refresh 重新加载 SharePoint 2013 wikipage 时,通过 javascript 以编程方式添加的所有行都消失了

请建议如何动态添加 HTML 内容并使其持久化,以便动态 HTML 内容不会在页面重新加载时消失。我知道我可以将它保存在本地存储中并检索它或尝试使用 cookie 或会话,但这不可行,因为该表将有几千条记录或更多。

所以我只想确保我通过 javascript 对 Sharepoint 2013 wikipage 的 HTML 代码所做的任何更改都保持保存或持久。

我找到的一些参考资料如下,但是由于我是sharepoint的新手,我无法清楚地理解,详细的分步说明会很好

Programmatically editing Sharepoint Wiki content

https://sharepoint.stackexchange.com/questions/69633/is-it-possible-to-programmatically-add-page-items-to-enterprise-wiki-using-csom

https://habaneroconsulting.com/insights/programmatically-change-content-on-a-wiki-page-in-sharepoint-2010#.VcF81v_JAuQ

能够使用 CoreInvoke('PageActionClick', this) 复制保存按钮,但保存按钮默认功能在保存和编辑之间切换,我只想要保存功能。

我在网上找到了一些更好的参考资料

http://sharepointace.blogspot.com/2013/05/add-custom-buttons-to-edit-or-save.html https://sharepoint.stackexchange.com/questions/88456/assign-edit-fuctionality-to-a-custom-button

【问题讨论】:

  • 仅作记录:什么是“嵌入代码
  • @theideasmith“嵌入代码”是 SharePoint 2013 WikiPage 的“插入菜单”下的选项
  • 我明白了 - 嵌入代码允许您在共享点页面的上下文中运行自己的自定义代码?另外,您可以在没有代码的情况下编辑此表吗?我只是从未使用过sharepoint,所以我想了解一下。
  • @theideasmith 是的嵌入代码允许您输入与共享点 wiki 页面相关的自定义代码。用户可以通过点击编辑按钮来编辑表格,但是为了简化用户体验,用户可以输入字段并点击附加到表格的添加按钮。

标签: javascript html sharepoint-2013 wiki persistent-storage


【解决方案1】:

免责声明:我没有使用过 Sharepoint,但我会尽力提供帮助。

要解决这个问题,有必要稍微了解一下浏览器是如何工作的。每次重新加载页面时,浏览器都会从服务器请求当前导航到的 URL。然后服务器返回一个由浏览器呈现的 HTML 文档。

您正确地将 HTML 附加到表格中。不幸的是,您所做的每一项更改都只存在于浏览器的缩影中。每次重新加载页面时,都会从服务器返回新的 HTML,这显然不包含您的更改。

在页面重新加载之间保持数据的唯一方法是让服务器镜像您的数据。为此,您需要使用 Sharepoint 自己的 web 应用程序向其服务器提交数据的相同机制以某种方式将数据提交到服务器。或者,您可以仅在浏览器中缓存您的本地更改,并在访问其页面时使用它们填充期望表。我会把这个挑战留给读者。

【讨论】:

  • 能否请您详细说明如何通过服务器镜像数据,如果您能给我指出一个详细解释这些步骤的教程或网站,那就太好了。我是 sharepoint 的新手,所以本教程对我有很大帮助。我还用我找到的一些参考资料编辑了我的答案。谢谢
  • 我的问题。应该更清楚。在“由服务器镜像”中,我的意思是您所做的任何本地更改都必须发送到服务器并存储在服务器的数据库中,因此当页面重新加载并且服务器从其数据库中读取您的共享点文档并将其发送到您的浏览器时,您之前的更改就在那里。要将本地更改发送到服务器,您需要(我认为)使用检查元素并在手动编辑表格时弄清楚PUSH 请求的格式是什么。使用 JQuery.ajax 复制这些请求
  • 感谢您的提示,当我点击 SharePoint 2013 wikipage 的保存按钮时,我将调试并查看幕后发生了什么帖子,并查看是否可以通过编程方式复制该帖子
  • 或者您可以模仿用户:输入字段,然后单击添加按钮 - 使用 JQuery。这需要自动化吗?您可以查看Sharepoint API
  • 在 IE 浏览器中单步执行代码后,我发现 coreInvoke() 方法最接近复制保存按钮的功能。但由于它是默认保存功能的精确复制,保存按钮的行为类似于编辑和保存,我只需要保存功能而不是编辑功能。我为我的问题添加了一些有用的链接。
猜你喜欢
  • 1970-01-01
  • 2011-08-18
  • 1970-01-01
  • 1970-01-01
  • 2019-01-12
  • 2020-10-16
  • 2010-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多