使用 Blob 作为 Flash 对象
Using a Blob as a Flash object
我正在尝试使用存储在 blob 中的 Flash 对象,但是我使用 URL.createObjectURL
返回的 URL 作为嵌入标记的 src
的方法只会导致浏览器将 blob 下载为文件。
这是我生成的 HTML:
<object height="500" width="1000">
<embed height="500" width="1000" src="blob:http://127.0.0.1:34721/1fa7a01c-25b7-4ad0-ba1d-1ddef61617ce"/>
</object>
这是用于生成 Blob 和 object
标签的 JavaScript:
var blob = new Blob(data, {
type: 'application/x-shockwave-flash'
});
document.body.innerHTML += '<object height="500" width="1000" ><embed height="500" width="1000" src="' + URL.createObjectURL(blob) + '"/></object>'
其中 data
是一个 Uint8Array
的数组,每个数组包含 256 个字节的二进制数据。
有问题的 blob 的类型为 application/x-shockwave-flash
,与原始 .swf
文件相同(我检查过)。当用于代替对象 URL 时,文件本身可以工作。
据我所知,指向 blob 的对象 URL 可以在普通 URL 可以使用的任何地方使用。嵌入标签是例外吗?
嵌入标记可能会错过通常从响应中获取的 MIME 类型 header。尝试将 "type="application/x-shockwave-flash" 设置为嵌入标签内的属性。
不过,Flash 不再得到广泛支持,我会跨浏览器进行测试,看看是否出现相同的错误。您可能需要将类型添加到旧版浏览器中的 object 标记。
我正在尝试使用存储在 blob 中的 Flash 对象,但是我使用 URL.createObjectURL
返回的 URL 作为嵌入标记的 src
的方法只会导致浏览器将 blob 下载为文件。
这是我生成的 HTML:
<object height="500" width="1000">
<embed height="500" width="1000" src="blob:http://127.0.0.1:34721/1fa7a01c-25b7-4ad0-ba1d-1ddef61617ce"/>
</object>
这是用于生成 Blob 和 object
标签的 JavaScript:
var blob = new Blob(data, {
type: 'application/x-shockwave-flash'
});
document.body.innerHTML += '<object height="500" width="1000" ><embed height="500" width="1000" src="' + URL.createObjectURL(blob) + '"/></object>'
其中 data
是一个 Uint8Array
的数组,每个数组包含 256 个字节的二进制数据。
有问题的 blob 的类型为 application/x-shockwave-flash
,与原始 .swf
文件相同(我检查过)。当用于代替对象 URL 时,文件本身可以工作。
据我所知,指向 blob 的对象 URL 可以在普通 URL 可以使用的任何地方使用。嵌入标签是例外吗?
嵌入标记可能会错过通常从响应中获取的 MIME 类型 header。尝试将 "type="application/x-shockwave-flash" 设置为嵌入标签内的属性。
不过,Flash 不再得到广泛支持,我会跨浏览器进行测试,看看是否出现相同的错误。您可能需要将类型添加到旧版浏览器中的 object 标记。