也许大家都知道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 FUNCTION(在html文件中找到)下面:
function postXMLPageRequest(url,xmlString,target,method) { method =方法|| “POST”; target = target || “_blank”;
<%-------------------------------------------- --------------%GT; <% - 创建具有指定属性的表单元素。 - %GT; <%----------------------------------------------- -----------%GT; 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”);
<%-------------------------------------------- ------------------------%GT; <% - 将XML字符串作为值添加到表单的隐藏输入。 - %GT; <%----------------------------------------------- ---------------------%GT; var hiddenField = document.createElement(“input”); hiddenField.setAttribute(“type”,“hidden”); hiddenField.setAttribute(“name”,“'+ xmlString); form.appendChild(hiddenField);
<%-----------------------------------------%GT; <% - 将表单添加到正文,提交 - %> <% - 然后从正文中删除表单。 - %GT; <%-----------------------------------------%GT; document.body.appendChild(形式); form.submit(); document.body.removeChild(形式); }
但是当我点击调用postXMLPageRequest函数的按钮时,没有执行任何操作> 有人帮我这个吗?
非常感谢。
答案 0 :(得分:0)
我马上就看到了3个问题。首先,您使用
调用flex函数postXMLPageRequest(变量, request.toString(),'_ blank');
即使它扩展了Object,URLRequest实际上也没有toString()方法。 request.url是获取url字符串的正确方法。
第二个是你的javascript中有语法错误。你有双引号和单引号,而不是
中的一对引号hiddenField.setAttribute(“name”,“'+ xmlString);
第三,在调用flex方法时指出要执行GET请求。你永远不会实际将方法类型字符串传递给javascript。如果你想要做一个get,你需要传递“GET”作为ExternalInterface调用的第四个参数。否则它将默认为POST。
希望有所帮助。