在 Flex 4.5 中导航到 URL 的替代方法 - 不起作用

Posted

技术标签:

【中文标题】在 Flex 4.5 中导航到 URL 的替代方法 - 不起作用【英文标题】:altervative to navigatetoURL in Flex 4.5 - not working 【发布时间】:2013-09-29 05:49:57 【问题描述】:

也许你们都知道 GoogleChrome 和 Safari 在使用 navigatetoURL 时遇到的问题。它仅适用于 IE。因此,我从论坛收集了以下代码。该代码是 html 文件中的一个 javascript 函数。然后Flex中还有另一个函数,当点击按钮时调用。部分代码在这里:

variables.pmsg1 = xml_langue.msg1;
variables.pmsg2 = xml_langue.msg2;
variables.pmsg3 = xml_langue.msg3;
variables.pmsg4 = xml_langue.msg4;
variables.ppaytomode = parentApp.PAYTOMODE;
var request:URLRequest = new URLRequest(dir_web);
request.data = variables;
request.method = "GET";
//navigateToURL(request,"_blank");
postXMLPageRequest(variables, request.toString(), '_blank'); // HERE I AM CALLING THE FLEX FUNCTION

下面的 FLEX 函数:

公共函数 postXMLPageRequest(data:Object, pageURL:String, window:String=null):void if (ExternalInterface && ExternalInterface.available) ExternalInterface.call("postXMLPageRequest", pageURL, data.encode().toString(), window);

JAVASCRIPT 函数(在 html 文件中找到)如下:

函数 postXMLPageRequest(url, xmlString, 目标, 方法) 方法=方法|| “邮政”; 目标 = 目标 || "_blank";

var form = document.createElement("form"); form.setAttribute("action", url); form.setAttribute("方法", 方法); form.setAttribute("目标", 目标); form.setAttribute("ENCTYPE", "text/plain"); form.setAttribute("style", "display: none");

var hiddenField = document.createElement("input"); hiddenField.setAttribute("类型", "隐藏"); hiddenField.setAttribute("name", "' + xmlString); form.appendChild(hiddenField);

document.body.appendChild(form); form.submit(); document.body.removeChild(form);

但是当我单击调用 postXMLPageRequest 函数的按钮时没有执行任何操作> 有人可以帮我解决这个问题吗?

非常感谢。

【问题讨论】:

【参考方案1】:

我马上看到了 3 个问题。首先,您使用

调用 flex 函数

postXMLPageRequest(变量, request.toString(), '_blank');

尽管它扩展了 Object,但 URLRequest 实际上并没有 toString() 方法。 request.url 是获取url字符串的正确方法。

第二个是您的 javascript 中有语法错误。你有一个双引号和一个单引号,而不是

中的一对引号

hiddenField.setAttribute("name", "' + xmlString);

第三,您在调用 flex 方法时表明您想要执行 GET 请求。但是,您实际上从未将方法类型字符串传递给 javascript。如果您想要获取,您需要将“GET”作为 ExternalInterface 调用的第四个参数传递。否则它将默认为 POST。

希望对您有所帮助。

【讨论】:

以上是关于在 Flex 4.5 中导航到 URL 的替代方法 - 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

过滤器是不是会破坏 Flex 4.5 皮肤中的 colorizeExclusions,如果是,是不是有解决方法?

如何在 Flex 4.5 的 TextInput 中控制光标(克拉)位置

TabNavigator 无法处理 Flex 4.5 中的禁用子级

确定实际屏幕/舞台分辨率的 Flex 4.5 移动 iOS 问题

Flex 4.5 (Hero) s:Datagrid RowCount

替代Flex编译器