11

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

该网站托管在 localhost 上运行的 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
  • 官方测试网站正在运行

这是我的代码:

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");
});
4

5 回答 5

6

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

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

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

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

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

于 2014-01-28T14:43:59.630 回答
1

我不确定这是否会有所帮助〜但是您是否尝试过更改您的moviePath?像这样:

{moviePath:"//YOURSERVER/path/ZeroClipboard.swf"}

我整个月都在尝试使用 ZeroCLipboard,但大多数时候我都失败了,因为我以某种方式弄错了路径......

总之祝你好运~

于 2013-11-21T00:01:37.650 回答
0

我解决了在 ZeroClipboard.min.js 上编辑这一行的问题

return a+"ZeroClipboard.swf"

至:

return "//YOUR/PATH/TO/ZeroClipboard.swf"
于 2014-08-29T03:47:38.520 回答
0

如果您准确提取项目,.SWF 文件位于此处:

moviePath: "../zeroclipboard.swf"
于 2014-01-16T02:21:56.170 回答
0

只想指出首先发现这个问题的其他人:ZeroClipboard 在本地查看文件时不起作用,即file://path/index.html. 这是因为 Adob​​e 的安全策略阻止了该file://协议。

https://stackoverflow.com/a/9450359/710377

如果您已经在使用 Node.js(即使只是用于包管理器),您可以在命令行上启动一个基本的 Web 服务器来测试 ZeroClipboardnpm install http-server -ghttp-server /path/(假设 npm 的东西已经在您的路径上)。

于 2015-08-28T15:19:59.550 回答