这个想法很简单:在 SP Designer 2010 中创建一个允许创建新列表项的 Web 部件页面,然后使用 CSOM 中的一些 javascript 在另一个页面的模式对话框中弹出页面。问题是出现一个对话框并短暂闪烁它正在加载内容,但随后它消失了,我只剩下刚刚单击的页面的刷新版本。这是我的代码。. .
//attach a click delegate to the table containing the following button(s)
<button type='button' class='ms-listheaderlabel'>Close</button>
//on button clicked event, call the following function
function openModalDialog(dialogPage, closeCallback) {
var options = [];
options.title = unescape("Close Ticket");
options.allowMaximize = true;
options.showClose = true;
options.autoSize = true;
options.url = dialogPage;
options.dialogReturnValueCallback = Function.createDelegate(null, closeCallback);
SP.UI.ModalDialog.showModalDialog(options);
};
. . . 其中 dialogPage 是我创建的表单(同一个站点,SitePages 库)的 url,closeCallback 是传入的匿名函数,用于处理来自对话框的返回值。我试过直接调用页面,它加载得很好。弹出窗口阻止程序完全关闭。使用IE9并尝试了8兼容模式以及另一台直接使用IE8的机器。系统模式工作得很好。有什么想法吗?