内容编辑器模式弹出窗口中的自定义SharePoint 2013列表/表单仅在表单中打开,表单位于...不在弹出窗口中

时间:2014-01-20 19:18:48

标签: javascript sharepoint sharepoint-2013

在将代码应用到内容编辑器Web部件后,我遇到了以模式弹出方式打开表单的问题...我正在使用的代码如下:

HTTP://sitename/_layouts/Upload.aspx列表= {A42810A0-786D-4028-B5C8-4B8BAE083CDA}&安培; RootFolder =“); javascript:return false;“ 目标= “_自” > 全球导航请求

请注意,我对javascript或任何编码都非常新。这段代码在过去(在SharePoint 2010中)对我来说效果很好,但是现在表单不会在弹出窗口中打开...它只会在它所在的列表中打开,我们不能拥有它...我们的用户无需查看已提交到该特定列表的任何其他条目...

我有什么办法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您的代码似乎不完整,但我认为它是锚点(<a>标记)的一部分,对吧?这本身不会打开模态弹出窗口。

如果要打开表单视图或编辑内置Web部件中的项目,是否在模式弹出窗口中打开它们取决于列表的设置。转到列表设置,然后高级,最后将Launch forms in a dialog?设置为Yes

如果你想对任何不是内置的东西强制模态弹出,你必须编码,但它很简单。您必须使用SharePoint的全局功能SP.UI.ModalDialog.showModalDialog。用法如下:

function openModal(pageToOpen) {
    SP.UI.ModalDialog.showModalDialog({
        url: pageToOpen,
        width: 800,
        height: 600
    });
}

在任何html元素中:

<foo onclick="openModal('http://sitename/_layouts/Upload.aspx?List={A42810A0-786D-4028-B5C8-4B8BAE083CDA}&RootFolder=')">

如果它是一个锚,你仍然必须防止它离开页面。简单的return false可能无法在所有浏览器上运行,因此我建议您在Stack Overflow中进行搜索。

返回SP.UI.ModalDialog.showModalDialog - 向该函数传递一个参数,一个带有一些属性的简单对象。我上面传递的属性是:

  • url:应在模态弹出窗口中打开的页面;
  • 宽度和高度:真的是任意值。除非您想要弹出窗口的任意大小,否则不必传递这些内容。

有关此方法的更多信息,请in the official documentation。您可以看到参数对象可能具有比我的示例中的属性更多的属性。此文档适用于SharePoint 2010,但此功能在SP2010和SP2013之间未发生更改。祝你好运,编码愉快:)。