Doomer, вроде как можно, но я даже не знаю команд никаких... капаюсь, пытаюсь как могу, очень нужно... но я так понимаю если использовать таймер, то страница может сильно лаговать если я поставлю таймер проверять повозможности чаще, вплоть до миллисекунд.
monolithed, не покажете пожалуйста пример кода? |
Цитата:
offiks, иногда бывает полезно рассказать, что ты хочешь сделать, вместо того, чтобы биться головой о придуманное тобой решение ;) |
<script type="text/javascript"> window.onload = function(){ document.getElementsByName('copy')[1].onclick = function(){ var text = document.getElementsByName('copy')[0].value; if(window.clipboardData) window.clipboardData.setData("Text", text); //IE else if(window.netscape) { //Netscape try { if(netscape.security.PrivilegeManager.enablePrivilege) netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); //netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead'); //netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite") } catch(event) { alert('Настройка безопасности браузера не позволяет обращаться к буферу обмена!\n'+event); return; } 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'); var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString), copy = text; str.data = copy; trans.setTransferData("text/unicode", str, copy.length*2); if(!clip) return false; clip.setData(trans, null, Components.interfaces.nsIClipboard.kGlobalClipboard); } alert("В буфер обмена сохранено:\n" + text); return false; }; }; </script> <input type="text" value="text" name="copy" /> <input type="submit" value="copy" name="copy" /> |
Цитата:
Onload функция ведь действует только при загрузке страницы, а значит не подходит :( |
monolithed, я имел в виду без включения всяких настроек безопасности
offiks, лучше писать десктопное приложение, потому что там должны быть средства мониторинга буфера обмена и не надо обходить меры безопасности. Может дальше еще какие-нибудь проблемы вылезут. Но я так понимаю, что это не вариант для тебя. Поэтому можно пробовать писать web-приложение, и да, без таймеров тут не обойдешься. А чтобы не лагало, надо будет найти компромис между быстротой реакции и влиянием на производительность |
offiks,
вы сап транзакции прямо в ИЕ открываете ? тогда тупо по таймеру спокойно можно сделать |
Цитата:
|
По работе пришлось сталкиватся, когда интегрировал СРМ в сап портал. Это актив икс, который открывается прямо в браузере, на офиц сайте сапа должны быть скрины. В сапе помоему любые действия называются транзакциями
![]() |
А вот оно что... так бы стразу, тогда этого для работы с буфером будет достаточно:
<script type="text/javascript"> window.onload = function(){ document.getElementsByName('copy')[1].onclick = function(){ var text = document.getElementsByName('copy')[0].value; if(window.clipboardData){ window.clipboardData.setData("Text", text); //IE alert("В буфер обмена сохранено:\n" + window.clipboardData.getData("Text")); } else { alert("Ваш браузер: " + navigator.appCodeName + '\nСбавьте обороты до IE5+'); } return false; }; }; </script> <input type="text" value="text" name="copy" /> <input type="submit" value="copy" name="copy" /> |
<input type="text" id="zzz"> <script type="text/javascript"> function test(){ var buf = window.clipboardData.getData('Text'); if(buf.substring(0,5)=="SF10Q" && window.old_buf!=buf){ document.getElementById('zzz').value = buf; window.old_buf=buf; } setTimeout("test()",500); } test(); </script> Если я понял ТСу надо такое |
Часовой пояс GMT +3, время: 00:00. |