我目前正在创建一个通过自定义网址功能访问的网页。每当我的页面回传到服务器时,我都会丢失window.dialogArguments
属性,因此无法访问getFields()
,container.deleteField()
等。
有什么方法吗?
我的第一个想法是通过XMLHttpRequest
调用与服务器进行所有通信,这样可以摆脱回发后问题,但问题是代码(来自Tridion 5.3)在很大程度上依赖于服务器端逻辑和改变它将是一项重大工作。 (5.3似乎使用window.returnValue
而不是dialogArguments
。
我的第二个想法是也许我可以在window.opener
中使用一些值,但我无法找到我需要的属性/功能。
答案 0 :(得分:4)
您可以在单独的iframe中进行回发。这将使主窗口保持活动状态,从而使window.dialogArguments
可以访问您的代码。
据我所知,window.opener
应该能够在任何回发后继续存在。所以我不确定你在那里寻找什么。
答案 1 :(得分:1)
如果您使用的是ASP.NET 3.5或更高版本,则还可以将控件简单地包装在UpdatePanel中。
然后它将自动在异步客户端请求中进行回发,因此不会重新加载窗口。