IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   JavaScript + буфер обмена (http://www.imho.ws/showthread.php?t=58701)

Makc 14.05.2004 19:03

JavaScript + буфер обмена
 
Уважаемые!

Я столкнулся с такой проблемой: мне надо скопировать определенный текст в буфер обмна, делаю я это так:
Код:

function ToClipboard(link) {
document.execCommand("Copy")
window.clipboardData.setData("Text", link);
}

Но беда в том, что работает это только в IE... Помогите модифицировать таким образом, что бы функция корректно работала в Mozilla.

azot 14.05.2004 23:10

google ==>

Код:

function toclip(cmd) {
  if (window.clipboardData) {
    window.clipboardData.setData('Text', cmd);
  } else if (window.netscape) {
        netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); 
        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;
}

про "netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnec t');" читаем тут:
http://www.mozilla.org/projects/secu...d-scripts.html

т.е. это дело получится только если юзер разрешит

Sheryld 14.05.2004 23:13

взято из MSDN:

Command Copy

...

Minimum Availability

Internet Explorer 4.0 and later.

...

p.s. clipboard - это Windows. интересно было бы взглянуть на widget-clipboard:)

Makc 16.05.2004 00:37

azot, пасиб!!! Но только вот эксплорер ругается и не хочет ничего делать... Говорит "предполагается наличае обьекта, строка 1, символ 1"...
Что не так?

azot 17.05.2004 02:47

???

у меня всё работает (IE 6)

Код:

<html>
<head>
<script language="javascript">
function toclip(cmd) {
  if (window.clipboardData) {
    window.clipboardData.setData('Text', cmd);
  } else if (window.netscape) {
        netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); 
        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;
}
  -->
  </script>
</head>


<body>

<input type=button Onclick='javascript:toclip("Test Clipboard - check it")' value="Test Clipboard">


</body>
</html>



Часовой пояс GMT +4, время: 02:33.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.