ExternalInterface.addCallback fails in local environment

浪子不回头ぞ 提交于 2019-12-24 09:59:00

问题


I thought this question would answer my question, but I have applied the following fixes:

.as

Security.allowDomain("*");
Security.allowInsecureDomain("*");

.html

param name="allowScriptAccess" value="always" />

.js

params.allowscriptaccess = "always";

And I am still seeing the ExternalInterface.addCallback method fail locally. It works on a web server, or in the dev folder. But not in an arbitrary local folder.


回答1:


Add as a trusted location the folder where your swf/html reside. Right click the Flash Player>Global Settings>Advanced>Trusted Locations.




回答2:


My guess is that the problem occurs when you load the .html page from a file:// URL (rather than running from a webserver, even localhost). This problem occurs because the Flash Player uses a different security sandbox for local files.

ExternalInterface.addCallback cannot be used in the file:// sandbox unless you've got a Trusted Location set (as per Tom's answer; this may explain why it works in your dev folder if it is set to be a trusted location). Unfortunately, setting trusted locations can be a royal pain, so I prefer to set up a webserver on localhost to do my testing.

If your end goal is to deploy your html (and js, swf, etc.) to a webserver, then you should only encounter this problem during development (barring other cross-domain issues). But if you plan to distribute without a webserver (say burning the files to a DVD) then this will be a recurring problem.




回答3:


try adding the folder in which you want to test this, to the security settings here: http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html



来源:https://stackoverflow.com/questions/6708743/externalinterface-addcallback-fails-in-local-environment

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!