【问题标题】:Custom SharePoint 2013 Lists/Forms in content editor modal pop up only opens in list the form lives in... Not in pop up内容编辑器模式弹出窗口中的自定义 SharePoint 2013 列表/表单仅在表单所在的列表中打开...不在弹出窗口中
【发布时间】:2014-01-20 19:18:48
【问题描述】:

在将代码应用到内容编辑器 Web 部件后,我无法在模式弹出窗口中打开我的表单...我正在使用的代码如下:

http://sitename/_layouts/Upload.aspx?List={A42810A0-786D-4028-B5C8-4B8BAE083CDA}&RootFolder="); javascript:返回错误;" 目标="_self"> 全球导航请求

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

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

【问题讨论】:

    标签: javascript sharepoint sharepoint-2013


    【解决方案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 之间没有变化。祝你好运,编码愉快:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多