ZeroClipboard不起作用,它不会抛出任何错误(javascript控制台)。
该网站托管在localhost上运行的HTTPS网络服务器上。网站和SWF都由同一台服务器通过HTTPS提供。
SWF已加载并正确定位在按钮上(ID:testButton)。右键单击该按钮时,将显示闪存上下文菜单(关于Adobe Flash Player 11.7 ...)。
然而,所有事件,甚至“加载”都没有被解雇。
我现在正在为两天月份解决这个问题,我找不到解决方案。
其他信息:
这是我的代码:
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");
});
答案 0 :(得分:6)
几个月后我终于找到了解决方案:
ZeroClipboard在浏览器的CommonJS环境中不会开箱即用,即使它说它也是如此。
对此的修复是将模块范围变量(例如ZeroClipboard)分配给全局窗口对象:
ZeroClipboard = require("zeroclipboard");
window.ZeroClipboard = ZeroClipboard;
我创建了一个错误报告: https://github.com/zeroclipboard/zeroclipboard/issues/332
答案 1 :(得分:1)
我不确定这是否会有所帮助〜但是你尝试过改变你的moviePath吗? 像这样:
{moviePath:"//YOURSERVER/path/ZeroClipboard.swf"}
我试图在整个月内使用ZeroCLipboard,大部分时间我都失败了,因为我在某种程度上错了路径......
祝你好运〜
答案 2 :(得分:0)
如果您完全解压缩项目,.SWF文件位于此处:
moviePath: "../zeroclipboard.swf"
答案 3 :(得分:0)
我在ZeroClipboard.min.js上解决了这一行的编辑问题
return a+"ZeroClipboard.swf"
为:
return "//YOUR/PATH/TO/ZeroClipboard.swf"
答案 4 :(得分:0)
我想首先指出找到这个问题的其他人:ZeroClipboard在本地查看文件时不起作用,即file://path/index.html
。这是因为Adobe的安全策略阻止了file://
协议。
https://stackoverflow.com/a/9450359/710377
如果您已经完全使用Node.js(甚至只是用于包管理器),您可以在命令行上启动基本Web服务器,以使用npm install http-server -g
和{{1}来测试ZeroClipboard (假设npm的东西已经在你的路径上了。)