ZeroClipboard 不起作用,也不会抛出任何错误(javascript 控制台)。
该网站托管在本地主机上运行的 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
- 官方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/