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

altervative to navigatetoURL in Flex 4.5 - not working

本文关键字:导航 URL 不起作用 Flex      更新时间:2023-09-26

也许你们都知道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

下面的弹性功能:

public function postXMLPageRequest(data:Object, pageURL:String, window:String=null):void{ if (ExternalInterface && ExternalInterface.available) ExternalInterface.call("postXMLPageRequest", pageURL, data.encode().toString(), window);}

JAVASCRIPT 函数(在 HTML 文件中找到):

function postXMLPageRequest(url, xmlString, target, method) { 方法 = 方法 ||"发布"; 目标 = 目标 ||"_blank";

<%----------------------------------------------------------%> <%-- 创建具有指定属性的表单元素。--%> <%----------------------------------------------------------%> var form = document.createElement("form"); form.setAttribute("action", url); form.setAttribute("method", method); form.setAttribute("target", target); form.setAttribute("ENCTYPE", "text/plain"); form.setAttribute("style", "display: none");

<%--------------------------------------------------------------------%> <%-- 将 XML 字符串作为值添加到表单的隐藏输入中。--%> <%--------------------------------------------------------------------%> var hiddenField = document.createElement("input"); hiddenField.setAttribute("type", "hidden"); hiddenField.setAttribute("name", "' + xmlString); form.appendChild(hiddenField );

<%-----------------------------------------%> <%-- 将表单添加到正文中,提交 --%> <%-- 然后从正文中删除表单。--%> <%-----------------------------------------%> document.body.appendChild(form); form.submit(); document.body.removeChild(form); }

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

多谢。

我马上看到 3 个问题。首先,你调用你的 flex 函数

使用

postXMLPageRequest(variables, request.toString(), '_blank');

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

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

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

第三,在对 flex 方法的调用中指示要执行 GET 请求。但是,您实际上从未将方法类型字符串传递到javascript中。如果你想做一个get,你需要传递"GET"作为外部接口调用的第四个参数。否则,它将默认为 POST。

希望有帮助。