小编abe*_*nni的帖子

AS3 Flash - 通过ExternalInterface渲染html

这是我关于Stack Overflow的第一个问题.这不是我第一次写一个,但通常我会找到一个使用搜索栏的解决方案,这次我没有.我正在解决的问题有点复杂,所以我会尝试尽可能彻底地解决问题.

基本上我们将中文付款添加到Flash中已有的电子商务中.整个网站都在AS3中,使用SWFObject嵌入,已经使用ExternalInterface进行其他操作.

这种新的中国支付方式有点过时,所以他们有一种奇怪的处理方式.一旦我们向他们的服务器发送了包含所有订单详细信息的POST,他们就会回复一个HTML页面.我的问题是渲染这个页面,考虑到我在Flash中收到它.

我正在尝试的解决方案部分工作,这意味着我能够看到页面,但应该在页面中的中文字符渲染得很糟糕.而不是中文字符我看到奇怪的字符,所以我猜测当我将HTML从Flash传递给Javascript时必定存在编码问题.这就是我这样做的方式:

AS3:

//extract html page from response
var newHTML:String = e.currentTarget.data;
//trim whitespace to avoid javascript error
newHTML = newHTML.replace(/\n/g, '');
newHTML = newHTML.split("\r").join("");

if(ExternalInterface.available)
  ExternalInterface.call("chinesePayment('"+newHTML+"')");
else
  trace("External interface error");
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

function chinesePayment(param) {
  var newWindow = window.open();
  //var unescaped = unescape(param);
  newWindow.document.write(param);
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试过使用unescape,escape,URIencoding,但没有任何成功,所以我真的希望你能帮助我在这里!

谢谢,多梅尼科

编辑:

我只想提一下,我从他们的服务器上收到了正确的HTML页面.我尝试在本地保存页面,直接从服务器响应中复制HTML代码,并正确地查看页面.这意味着在将页面从AS3传递到Javascript的过程中必定存在问题.

EDIT2!重要:

我意识到问题在于弹出编码.当我从弹出窗口复制HTML时,将其粘贴到编辑器中并保存,我可以正确查看HTML.好像弹出窗口不考虑gbk编码.我现在正在寻找解决这个问题的方法.

javascript encoding actionscript-3 cjk externalinterface

9
推荐指数
1
解决办法
528
查看次数