3

我目前正在创建一个通过自定义 url 功能访问的页面。每当我的页面回发到服务器时,我都会丢失该window.dialogArguments属性,因此无法访问getFields()container.deleteField()

有没有办法解决?

我的第一个想法是通过XMLHttpRequest调用与服务器进行所有通信,这将消除回发问题,但问题是代码(来自 Tridion 5.3)严重依赖服务器端逻辑,这将是一项艰巨的工作更改。(5.3 似乎使用window.returnValue而不是dialogArguments.

我的第二个想法是也许我可以在 中使用一些值window.opener,但我无法找到我需要的属性/功能。

4

2 回答 2

4

您可以在单独的 iframe 中进行回发。这将使主窗口保持活动状态,从而使window.dialogArguments您的代码可以访问。

据我所知,window.opener应该在任何回传中幸存下来。所以我不确定你在那里寻找什么。

于 2012-11-22T18:47:40.143 回答
1

如果您使用的是 ASP.NET 3.5 或更高版本,您还可以简单地将控件包装在UpdatePanel中。

然后它将自动在异步客户端请求中执行回发,因此不会重新加载窗口。

于 2012-11-26T09:32:49.157 回答