2013-09-05 7 views
11

ZeroClipboard funktioniert nicht und es wirft keine Fehler (JavaScript-Konsole).ZeroClipboard: swf geladen, aber nicht funktioniert

Die Website wird auf einem HTTPS-Webserver gehostet, der auf localhost ausgeführt wird. Sowohl die Website als auch die SWF werden über HTTPS vom selben Server bedient.

Die SWF-Datei wird korrekt über die Schaltfläche geladen und positioniert (mit ID: testButton). Wenn Sie mit der rechten Maustaste auf die Schaltfläche klicken, wird das Flash-Kontextmenü (Über Adobe Flash Player 11.7 ...) angezeigt.

Allerdings wird keines der Ereignisse, nicht einmal "load", ausgelöst.

Ich arbeite an diesem Problem für zwei Tage Monaten jetzt, und ich kann keine Lösung finden.

Zusätzliche Informationen:

  • ZeroClipboard Version: v1.1.7, auch versucht v1.2.0-beta.3, bearbeiten: Dies geschieht auch mit v1.3.1
  • Browser: Chromium 28 auf Mac OSX
  • Offizielle test website arbeitet

ist hier mein Code:

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

Ich habe genau das gleiche Problem. SWF lädt (ich kann die 200 in Chrome-Entwicklertools sehen), aber 'load' wird nie ausgelöst. –

Antwort

6

Nach Monaten habe ich endlich eine Lösung gefunden:

ZeroClipboard funktioniert nicht standardmäßig in CommonJS-Umgebungen im Browser, selbst wenn es so aussieht.

Das Update für das ist der Modul Anwendungsbereich Variable (zB ZeroClipboard) zum globalen Fensterobjekt zuweisen:

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

ich einen Fehlerbericht zu diesem Thema erstellt: https://github.com/zeroclipboard/zeroclipboard/issues/332

+0

Wenn das Update nicht funktioniert, vergewissern Sie sich, dass 'window.require' vorhanden ist, z. indem Sie ihm 'window.require = require;' in einem Ihrer Module zuweisen. Diese zwei Fixes sind sehr hässlich, aber sie sind die einzige Lösung im Moment. – squarebracket

1

Ich bin mir nicht sicher, ob das helfen würde ~ aber hast du versucht, deinen moviePath ein wenig zu ändern? So:

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

ich versuchte ZeroCLipboard in den ganzen Monat und die meisten der Zeit, die ich nicht zu verwenden, weil ich den Weg falsch in der einen oder anderen ...

sowieso Viel Glück bekam ~

+2

Die SWF ist richtig geladen (kann in den Browser-Entwickler-Tools gesehen werden), aber das Load-Ereignis wird nicht ausgelöst .. – squarebracket

0

Wenn Sie das Projekt genau zu extrahieren, wird die SWF-Datei befindet sich hier:

moviePath: "../zeroclipboard.swf" 
+1

Ich habe die swf in ein anderes Verzeichnis verschoben. Das SWF wird ordnungsgemäß geladen (kann in den Entwicklertools des Browsers angezeigt werden), aber das Ladeereignis wird nicht ausgelöst. – squarebracket

0

ich diese Linie ausgewertete Bearbeitung auf ZeroClipboard.min.js

return a+"ZeroClipboard.swf" 

zu:

return "//YOUR/PATH/TO/ZeroClipboard.swf" 
0

Ich möchte nur darauf hinweisen, dass jemand anderes diese Frage zuerst findet: ZeroClipboard funktioniert nicht, wenn man sich die Datei lokal anschaut, d. H. file://path/index.html.Dies liegt daran, dass die Sicherheitsrichtlinien von Adobe das Protokoll file:// blockieren.

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

Wenn Sie bereits Node.js überhaupt mit (auch nur für den Paketmanager) können Sie einen einfachen Web-Server auf der Kommandozeile spin up zu testen ZeroClipboard mit npm install http-server -g und http-server /path/ (unter der Annahme, dass npm Zeug ist schon auf deinem Weg).

Verwandte Themen