我有Flash应用程序,该应用程序创建数组并调用javascript函数。

var jsParams = ["3011","3012","3013","3014","3015"];
ExternalInterface.call("doCall", jsParams);


这是我的javascript函数:

function doCall(params) {
  console.log(params);
  console.log(params[0]);
}


萤火虫的输出为:

["3011","3012","3013","3014","3015"]
[


但是对于第二行,我期望3011而不是[。然后我试图从萤火虫中调用具有相同参数的相同函数,并输出以下函数:

doCall(["3011","3012","3013","3014","3015"]);
["3011","3012","3013","3014","3015"]
3011


我的问题是如何将参数从动作脚本传递给javascript,而不是作为字符串值。

谢谢。

最佳答案

看起来params变量是作为字符串而不是数组传递的。

当将方括号符号应用于字符串时,它表示所提供索引处的字符,在这种情况下,该字符将为'['(位置0)。

您应该研究JSON解码,以找到一种将字符串转换回数组的安全方法,我不推荐eval,并且JSON.decode不受广泛支持。

07-28 06:23