javascript - ZeroClipboard:swf 已加载,但无法正常工作

标签 javascript flash zeroclipboard

ZeroClipboard 不起作用,也不会抛出任何错误(javascript 控制台)。

该网站托管在本地主机上运行的 HTTPS 网络服务器上。网站和 SWF 均由同一台服务器通过 HTTPS 提供服务。

SWF 已加载并正确放置在按钮上(ID:testButton)。右键单击该按钮时,会显示 Flash 上下文菜单(关于 Adob​​e Flash Player 11.7...)。

但是,没有任何事件被触发,甚至“加载”事件也没有。

我已经为这个问题工作了 两天 个月,但我找不到解决方案。

附加信息:

  • ZeroClipboard 版本:v1.1.7,也尝试过 v1.2.0-beta.3,编辑:这也适用于 v1.3.1
  • 浏览器:Mac OSX 上的 Chromium 28
  • 官方test website正在工作

这是我的代码:

var clip = new ZeroClipboard(document.getElementById("testButton"), {
    moviePath: "media/zeroclipboard.swf"
});
clip.on("dataRequested", function(client, args) {
    client.setText("Copy me!");
});
clip.on("load", function(client) {
    alert("movie is loaded");
});
clip.on("complete", function(client, args) {
    alert("Copied text to clipboard: " + args.text);
});
clip.on("mouseover", function(client) {
    alert("mouse over");
});
clip.on("mouseout", function(client) {
    alert("mouse out");
});
clip.on("mousedown", function(client) {
    alert("mouse down");
});
clip.on("mouseup", function(client) {
    alert("mouse up");
});

最佳答案

几个月后我终于找到了解决方案:

ZeroClipboard 不能在浏览器的 CommonJS 环境中开箱即用,即使它说它可以。

解决方法是将模块范围变量(例如 ZeroClipboard)分配给全局窗口对象:

ZeroClipboard = require("zeroclipboard");
window.ZeroClipboard = ZeroClipboard;

我为此创建了一个错误报告: https://github.com/zeroclipboard/zeroclipboard/issues/332

关于javascript - ZeroClipboard:swf 已加载,但无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18633892/

相关文章:

javascript - 上传前检查文件大小

javascript - react native 推送通知声音

apache-flex - 在 Flash Builder 中对 Flexflash 库进行单元测试

javascript - jQuery 剪贴板插件不适用于动态添加的元素

javascript - 循环遍历 Javascript 对象返回值的总和

javascript - 如何将 D3 节点标签文本读入 div/段落元素?

flash - 为什么videojs 不能在IE6/7/8 中播放我的Flash 视频?

Flash AS3 - 如果我更改标签,舞台上的按钮将不会隐藏 - 错误或丢失某些内容?

javascript - Jquery - ZeroClipboard 仅在第二次单击时有效

javascript - 多个零剪贴板按钮