在将代码应用到内容编辑器Web部件后,我遇到了以模式弹出方式打开表单的问题...我正在使用的代码如下:
HTTP://sitename/_layouts/Upload.aspx列表= {A42810A0-786D-4028-B5C8-4B8BAE083CDA}&安培; RootFolder =“); javascript:return false;“ 目标= “_自” > 全球导航请求
请注意,我对javascript或任何编码都非常新。这段代码在过去(在SharePoint 2010中)对我来说效果很好,但是现在表单不会在弹出窗口中打开...它只会在它所在的列表中打开,我们不能拥有它...我们的用户无需查看已提交到该特定列表的任何其他条目...
我有什么办法可以解决这个问题吗?
答案 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
- 向该函数传递一个参数,一个带有一些属性的简单对象。我上面传递的属性是:
有关此方法的更多信息,请in the official documentation。您可以看到参数对象可能具有比我的示例中的属性更多的属性。此文档适用于SharePoint 2010,但此功能在SP2010和SP2013之间未发生更改。祝你好运,编码愉快:)。