ZeroClipboard.setMoviePath( "/zeroclipboard/ZeroClipboard.swf" );
var clip = new ZeroClipboard.Client();
clip.setText( $('textarea#download_me').text() );
clip.glue( 'clip' );我正在使用流行的ZeroClipboard插件将内容复制到用户的剪贴板。它在dev环境和domain1.com上都能很好地工作,但在domain2.com上却不能,文件和设置完全相同!
加载/zeroclipboard/ZeroClipboard.js。
/zeroclipboard/ZeroClipboard.swf无法加载!
我试了所有的方法,但就是不能让它工作。我真的很困惑为什么它能在domain1上工作,而不能在domain2上工作??
我该如何解决这个问题?
非常感谢您的帮助!
发布于 2010-09-27 05:25:00
http://kenneth.kufluk.com/blog/2008/08/cross-domain-javascript-to-flash/可能会有所帮助。另外,当心子域,Flash可能会被混淆。也可以使用Flash debug player和Fiddler (或类似的工具)来查看正在发生的事情。
发布于 2010-09-24 09:24:57
如果此文件与您的网页位于同一目录中,则它将开箱即用。但是,如果SWF文件驻留在其他地方,则需要像这样设置URL (将此代码放在script标签之后):
ZeroClipboard.setMoviePath( 'http://YOURSERVER/path/ZeroClipboard.swf' );要使用Zero Clipboard 1.0.7中新的Rich HTML功能,必须将影片路径设置为新的"ZeroClipboard10.swf“文件,该文件包含在1.0.7存档中。示例:
ZeroClipboard.setMoviePath( 'ZeroClipboard10.swf' );或者,在当前目录以外的自定义位置:
ZeroClipboard.setMoviePath( 'http://YOURSERVER/path/ZeroClipboard10.swf' );发布于 2014-02-27 18:22:23
有一些用于跨域资源的选项:
// SWF inbound scripting policy: page domains that the SWF should trust. (single string or array of strings)
trustedDomains: [window.location.host],请参阅:https://github.com/zeroclipboard/zeroclipboard/blob/master/docs/instructions.md
另外:如果您在config中将debug设置为true,则当前主分支(2.x)会将跨域记录到控制台。
我在使用cdn托管版本的swf文件时取得了一些成功。但在做了一些编辑之后,它在本地神秘地停止了工作,但在我的临时服务器上工作了。
这是我的配置:
ZeroClipboard.config({
moviePath: '//cdnjs.cloudflare.com/ajax/libs/zeroclipboard/1.3.2/ZeroClipboard.swf',
forceHandCursor: true,
debug: true
});另请参阅此jsfiddle:
http://jsfiddle.net/rimian/45Nnv/
如果你仍然有问题,你可以从swf登录到控制台。为此,您需要能够使用grunt mxmlc将flash从zeroclipboard source编译为swf。只需在操作脚本中调度一个日志事件(编译并复制到您的项目中),并在您的js中响应它:
例如,在ZeroClipboard.as中
// constructor, setup event listeners and external interfaces
public function ZeroClipboard() {
...
// Get the flashvars
var flashvars:Object = LoaderInfo( this.root.loaderInfo ).parameters;
dispatch("log", flashvars);
...
}然后在你的js中:
zeroclipboard = new ZeroClipboard($('.mybuttons'))
zeroclipboard.on('log', function(client, args) { console.log('log:', args)});https://stackoverflow.com/questions/3741691
复制相似问题