Скаопировать в буфер обмена

Хочю сделать на первы взгляд элементарное: есть поле в нем какойто текст, нажимаю кномпу и текст попадает в буфер обмена.Пробывал сделать так:
function toClipboard(cmd) {    alert(cmd);    if (window.clipboardData) {        window.clipboardData.setData('Text', cmd);    } else if (window.netscape) {        try {            netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');        } catch (err) {            alert("Sorry, you can not enjoy this site because of " + err + ".");            return false;        }        var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);        if (!str)            return;        str.data = cmd;        var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);        if (!clip)            return;        var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);        if (!trans)            return;        trans.addDataFlavor('text/unicode');        trans.setTransferData('text/unicode', str, cmd.length * 2);        var clipid = Components.interfaces.nsIClipboard;        clip.setData(trans, null, clipid.kGlobalClipboard);    }    return false;}
В IE все работает ок, в мозелле тож работает но ток локально, если страничка отрыта с сервера то возникает эксепшин в этом месте: netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); как быть? Может есть варианты сделать через ActiveX?
6 ответов

пожалста =)
<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><title>Новая страница 2</title><script>if (!window.clipboardData)window.clipboardData = {_make:function() {    var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);    if (!clip)return null;    var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);    if (!trans)return null;    trans.addDataFlavor('text/unicode');    var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);    this._p = [clip,trans,str];    return true},    setData:function(type, text) {        netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');        if (!this._make()) return false;        this._p[2].data = text;        this._p[1].setTransferData("text/unicode", this._p[2], text.length * 2);        var clipid = Components.interfaces.nsIClipboard;        this._p[0].setData(this._p[1], null, clipid.kGlobalClipboard)    },    getData:function(type) {        netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');        if (!this._make()) return false;        this._p[0].getData(this._p[1], this._p[0].kGlobalClipboard);        var strLength = new Object();        var str = new Object();        this._p[1].getTransferData("text/unicode", str, strLength);        if (str)str = str.value.**************(Components.interfaces.nsISupportsString);        if (str)return str.data.substring(0, strLength.value / 2);        return ""    }};    function copyTo(val) {window.clipboardData.setData("Text", val); };    </script></head><body onload="copyTo('jfjdhkjdfhg');"></body></html>


выдернул наскоряк из кода, в примере можно и нужно кое-чего поубирать


Спасибо, это именно то что я искал  


А нет, срузу не заметил но оно работает только если откривать стараничку как простой файл, пихаю его на сервак и ничего не работает!!!! Даже не появляется окно с запросом безопасности...Вот здесь ошибка:
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
Как быть???


отправляю рабочий примерчик, но покопаться придется =)  clipboard.rar 52,98 Kb


Примерчик работает только по ИЕ, а под мозилу таже проблема:(