0

有没有办法设置目标属性以使用 Apache Royale 发布表单数据?随着 Flash Player 的退役,我们正试图尽量减少对从 Flex 迁移到 Royale 的影响。我不能使用 BrowserWindow("URL", target) 因为这对于我们使用 HTMLframes 的旧应用程序会更加复杂。

HTTPService 将允许我们将表单数据发布到 url,但它默认“target”属性为“_blank”。在下面的代码中,我们使用 HTTPService 将数据发送到 URL 进行处理和显示。

如何将表单发布到目标框架中,或者有没有办法覆盖设置为“_blank”的私有变量目标?

            var urlVars:URLVariables = new URLVariables();
            urlVars.set("EMPID", "8675309");                
            urlVars.set("FORM[NAME]", "Software, User");
            
            // create the httpservice instance
            var service:HTTPService = new HTTPService();
            service.url = "https://info-test.company.com/DaveTest.cfm";
            service.method = HTTPConstants.POST;
            
            service.addEventListener("complete", completeHandler);
            
            // add the variables
            service.contentData = urlVars;
            
            // trigger the service
            service.send();
4

1 回答 1

0

BrowserWindow特定于打开一个新窗口。听起来你需要一个 iframe。HTML 包有一个 Iframe 组件,但它是 0.9.8 的新组件,尚未发布。

您还可以使用<js:WebBrowser/>which uses an iframeunder the hood

之间的通信iframes只能用postMessage.

像这样的东西:

 window["top"]["postMessage"]("foo", '*');
 if (window.parent != window["top"]) {
   window.parent["postMessage"]("foo", '*');
 }

如果你想发送 POST 的实际结果,你应该可以通过添加“transferrable”来做到这一点:

https://developer.mozilla.org/en-US/docs/Web/API/Transferable

于 2020-08-27T11:42:31.780 回答