Javascript: Zugriff auf die Zwischenablage mit Firefox

Ich verstehe ja durchaus, dass JavaScript nicht einfach so auf die Zwischenablage zugreifen sollen darf.

Aber tät es nicht auch eine einfache Whitelist auf Host-Basis?
Stattdessen bedarf es solch einer Funktion:

javascript

  1. function copyToClipboard(meintext) {
  2. if (window.clipboardData)
  3.      window.clipboardData.setData("Text", meintext);
  4. else if (window.netscape) {
  5.      netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
  6.      var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
  7.      if (!clip)
  8.           return false;
  9.      var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
  10.      if (!trans)
  11.           return false;
  12.      trans.addDataFlavor('text/unicode');
  13.      var str = new Object();
  14.      var len = new Object();
  15.      var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
  16.      str.data=meintext;
  17.      trans.setTransferData("text/unicode",str,meintext.length*2);
  18.      var clipid=Components.interfaces.nsIClipboard;
  19.      if (!clipid)
  20.           return false;
  21.      clip.setData(trans,null,clipid.kGlobalClipboard);
  22. }
  23. return false;
  24. }

Wohlgemerkt die ersten zwei Zeilen sind für den IE. Der Rest für Firefox.

Ach ja: Die Zwischenablage muss man erstmal unter about:config die Property signed.applets.codebase_principal_support auf

true

gesetzt werden.

Schreibe einen Kommentar