gpt4 book ai didi

javascript - 将字节字符串返回给 ExternalInterface.call 会引发错误

转载 作者:数据小太阳 更新时间:2023-10-29 04:17:32 24 4
gpt4 key购买 nike

我正在开发我的开源项目 Downloadify ,到目前为止,它只是处理返回字符串以响应 ExternalInterface.call 命令。

我正在尝试使用 JSZip 组合一个测试用例和 Downloadify 在一起,最终结果是在浏览器中动态创建一个 Zip 文件,然后使用 FileReference.save 保存到磁盘。但是,这是我的问题:

JSZip 库可以返回 Zip 的 base64 编码字符串,或原始字节字符串。问题是,如果我返回该字节字符串以响应 ExternalInterface.call 命令,我会收到此错误:

Error #1085: The element type "string" must be terminated by the matching end-tag "</string>"

ActionScript 3:

var theData:* = ExternalInterface.call('Downloadify.getTextForSave',queue_name);

其中 queue_name 只是一个字符串,用于在 JS 中识别正确的实例。

JavaScript:

var zip = new JSZip();
zip.add("test.txt", "Hello world!\n");
var content = zip.generate(true);
return content;

如果我改为返回普通字符串而不是字节字符串,调用将正常工作。我想避免使用 base64,因为我必须包含 base64我的 swf 中的解码器会增加它的大小。

最后:我不是在寻找 AS3 Zip 生成器。我的项目必须让该部分在 JavaScript 中运行

诚然,我不是行业的 AS3 程序员,所以如果您需要更多详细信息,请告诉我。

最佳答案

当数据从 javascript 调用返回时,它被序列化为 XML 字符串。因此,如果 JSZip 返回的“原始字符串”将包含使 XML 无效的字符(我认为这是此处发生的情况),您将收到类似的错误。

你得到的返回实际上是:

<string>[your JSZip generated string]</string>

假设您的返回字符串包含一个“<”字符 - 这将使 xml 无效,并且很难判断原始字节流也将转换哪些字符代码。

您可以在 LiveDocs 上阅读有关外部 API 的 XML 格式的更多信息

关于javascript - 将字节字符串返回给 ExternalInterface.call 会引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2107229/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com