ZeroClipboard:swf加载但无法正常工作

squ*_*ket 11 javascript flash zeroclipboard

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

该网站托管在localhost上运行的HTTPS网络服务器上.网站和SWF都由同一服务器通过HTTPS提供.

SWF加载并正确定位在按钮上(ID:testButton).右键单击该按钮时,将显示Flash上​​下文菜单(关于Adobe Flash Player 11.7 ...).

但是,没有任何事件,甚至没有"加载",都会被解雇.

我正在研究这个问题 两天 现在几个月,我找不到解决方案.

附加信息:

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

这是我的代码:

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");
});
Run Code Online (Sandbox Code Playgroud)

squ*_*ket 6

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

ZeroClipboard在浏览器的CommonJS环境中不能开箱即用,即便如此.

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

ZeroClipboard = require("zeroclipboard");
window.ZeroClipboard = ZeroClipboard;
Run Code Online (Sandbox Code Playgroud)

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