Javascript: Zugriff auf die Zwischenablage mit Firefox
zeeman | 8. Oktober 2009Ich 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:
-
function copyToClipboard(meintext) {
-
if (window.clipboardData)
-
window.clipboardData.setData("Text", meintext);
-
else if (window.netscape) {
-
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
-
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
-
if (!clip)
-
return false;
-
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
-
if (!trans)
-
return false;
-
trans.addDataFlavor('text/unicode');
-
var str = new Object();
-
var len = new Object();
-
var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
-
str.data=meintext;
-
trans.setTransferData("text/unicode",str,meintext.length*2);
-
var clipid=Components.interfaces.nsIClipboard;
-
if (!clipid)
-
return false;
-
clip.setData(trans,null,clipid.kGlobalClipboard);
-
}
-
return false;
-
}
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.










