可能大家都知道 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, 目标, 方法) { 方法 = 方法 || “邮政”; 目标 = 目标 || “_空白的”;
<%------------------------------------------------ ----------%> <%-- 创建具有指定属性的表单元素。--%> <%-------------------------------------------- --------------%> var form = document.createElement("form"); form.setAttribute("action", url); form.setAttribute("方法", 方法); form.setAttribute("目标", 目标); form.setAttribute("ENCTYPE", "text/plain"); form.setAttribute("style", "display: none");
<%------------------------------------------------ --------------------%> <%-- 将 XML 字符串作为值添加到表单的隐藏输入中。--%> <%-------------------------------------------- ------------------------%> var hiddenField = document.createElement("input"); hiddenField.setAttribute("类型", "隐藏"); hiddenField.setAttribute("name", "' + xmlString); form.appendChild(hiddenField);
<%------------------------------------------------------%> <%-- 添加表单到正文,提交 --%> <%-- 然后从正文中删除表单。--%> <%--------------------------------------------%> 文件.body.appendChild(form); form.submit(); document.body.removeChild(form); }
但是,当我单击调用 postXMLPageRequest 函数的按钮时没有执行任何操作> 有人可以帮我吗?
非常感谢。