如何从 file:// 协议嵌入外部 SWF
我正在尝试从包含 HTML 内容、javascript 和 vbscript 的 HTA 应用程序嵌入外部 .swf 文件。 我使用 swfobject 从 javascript 加载 swf。
远程服务器允许“localhost”作为原始服务器,我可以将其嵌入到我的网络服务器上的 HTML 页面上,在 http://localhost 上运行,但我需要让它在本地运行的 HTA 上工作,我认为它使用 file:// 协议,而不是 http:// 。 现在,当尝试这种方法时,嵌入的 swf 会发出错误信号。
我检查了远程站点上的 crossdomain.xml,它显示:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy
SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="localhost" to-ports="*" />
...
</cross-domain-policy>
有没有办法让它在我的 HTA 应用程序中工作而无需运行网络服务器?
谢谢。
I'm trying to embed an external .swf file from an HTA application that consists of HTML content, javascript and vbscript. I load the swf from javascript, using swfobject.
The remote server allows 'localhost' as the originating server, and I could embed it on an HTML page on my webserver, running on http://localhost, but I need to make it work from the locally-run HTA, which I suppose uses the file:// protocol, not http://. Right now, when trying this approach, embedded swf signals an error.
I checked crossdomain.xml on the remote site and it says:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy
SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="localhost" to-ports="*" />
...
</cross-domain-policy>
Is there a way to make it work from my HTA app without running a webserver?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不确定 HTA 文件,但我知道您可以通过类似的方式直接将外部 .swf 文件嵌入到您的网页中
i'm not sure about HTA files but i know you can directly embed external .swf files into your webpage via something like
无需使用 file:// 协议,我相信 ShockwaveFlash 根本不支持该协议。 只需使用 .SWF 文件的名称,它将从与 HTA 文件相同的目录中加载。 或者使用完整路径,如 C:\something\flash\applet.swf
跨域的东西是无关紧要的,因为你在一台机器上运行它。
.HTA 安全模型比 Web 安全模型开放得多,因为它只能在单台计算机上运行,就像 .EXE 或任何其他 Windows 应用程序一样。
No need to use file:// protocol, which I believe is simply not supported by ShockwaveFlash. Just use the name of the .SWF file and it will be loaded from the same directory as the HTA file. Or use the full path like C:\something\flash\applet.swf
The crossdomain stuff is irrelevant because you are running it all on one machine.
And the .HTA security model is much more open than the web security model, because it only works on a single machine, just like a .EXE or any other Windows application.