繁体   English   中英

为什么在SharePoint中关闭模式对话框时无法重定向到另一个URL?

[英]Why I can't redirect to another URL when I close a modal dialog in SharePoint?

在SharePoint中非常新,我在SharePoint 2013中实现特定的模式对话框行为时遇到以下问题。

我有以下情况。 在Webpart中,我正在将另一个WebPart打开到模式对话框中(这不是问题)。 然后,当关闭模式对话框时,我必须将父页面(而不是关闭的对话框)刷新到另一个Web部件中。 我正在尝试通过JavaScript以这种方式实现此行为:

string javascript = "function openEdit(link) {"         +
                        "var options = {"               +
                                        "url: link,"    +
                                        "dialogReturnValueCallback: Callback"   + 
                                       "};"             +
                        "SP.SOD.execute('sp.ui.dialog.js', 'SP.UI.ModalDialog.showModalDialog', options);"  +
                     "}"                                +
                     "function Callback(dialogResult, ret)  {"          +
                        "alert('TEST');"                +
                        "window.frameElement.commitPopup();"            +
                        //"window.location.replace(\"" + linkRed + "\");" +
                        "window.parent.location.herf = 'http://www.google.com'" +

                     "}"                                +
                     "openEdit(\"" + linkPrint + "\");";

ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "CallJS", javascript, true);

如您所见,在父级Web部件中,我正在使用openEdit() JS函数打开链接(由linkPrint字符串变量的值表示(有效)。

我还声明了关闭我的模式对话框时调用的回调函数。 它正确地进入了此Callback()函数(我看到它是因为我放了alert()),但随后我希望将其重定向到google.com(或更改此值的另一个Webpart上的URL),但无法正常工作。 它从我打开模态对话框窗口的位置重定向和刷新父页面。

为什么? 怎么了? 我想念什么? 如何解决此问题?

修改代码如下。 注意:在代码中,将“ herf ”替换为“ href ”,然后使用window.location.href重定向其他页面。

var linkPrint = "http://sp2013/sites/team/Lists/Test/EditForm.aspx?ID=1";
string javascript = "function openEdit(link) {" +
            "var options = {" +
                            "url: link," +
                            "dialogReturnValueCallback: Callback" +
                           "};" +
            "SP.SOD.execute('sp.ui.dialog.js', 'SP.UI.ModalDialog.showModalDialog', options);" +
         "}" +
         "function Callback(dialogResult, ret)  {" +
            "alert('TEST');" +
            "window.location.href= 'http://www.google.com';" +
         "}" +
         "openEdit(\"" + linkPrint + "\");";

ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "CallJS", javascript, true);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM