Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 07.12.2010, 04:43
Новичок на форуме
Отправить личное сообщение для offiks Посмотреть профиль Найти все сообщения от offiks
 
Регистрация: 05.12.2010
Сообщений: 6

Doomer, вроде как можно, но я даже не знаю команд никаких... капаюсь, пытаюсь как могу, очень нужно... но я так понимаю если использовать таймер, то страница может сильно лаговать если я поставлю таймер проверять повозможности чаще, вплоть до миллисекунд.

monolithed, не покажете пожалуйста пример кода?
Ответить с цитированием
  #12 (permalink)  
Старый 07.12.2010, 09:18
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от monolithed
Единственный кроссбраузерный способ использовать flash. Как написано здесь
насколько я знаю, даже для флеша это возможно как реакция на действие пользователя, на клик или может еще что-нибудь. И странную ссылку ты привел...

offiks, иногда бывает полезно рассказать, что ты хочешь сделать, вместо того, чтобы биться головой о придуманное тобой решение
Ответить с цитированием
  #13 (permalink)  
Старый 07.12.2010, 10:59
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

<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" />
Ответить с цитированием
  #14 (permalink)  
Старый 07.12.2010, 13:04
Новичок на форуме
Отправить личное сообщение для offiks Посмотреть профиль Найти все сообщения от offiks
 
Регистрация: 05.12.2010
Сообщений: 6

Сообщение от x-yuri Посмотреть сообщение
насколько я знаю, даже для флеша это возможно как реакция на действие пользователя, на клик или может еще что-нибудь. И странную ссылку ты привел...

offiks, иногда бывает полезно рассказать, что ты хочешь сделать, вместо того, чтобы биться головой о придуманное тобой решение
Хочу сделать страницу, которая будет следить за буфером обмена где бы я нибыл, хоть на другой странице или в другой программе (надо для работы). Вот допустим сижу я в SAP (программа) и скопировал номер документа, а сайт заметил изменение в буфере обмена номер документа и сразу загрузил его, вот чего я хочу сделать, но ломаю голову и не знаю как.
Onload функция ведь действует только при загрузке страницы, а значит не подходит
Ответить с цитированием
  #15 (permalink)  
Старый 07.12.2010, 13:56
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

monolithed, я имел в виду без включения всяких настроек безопасности

offiks, лучше писать десктопное приложение, потому что там должны быть средства мониторинга буфера обмена и не надо обходить меры безопасности. Может дальше еще какие-нибудь проблемы вылезут. Но я так понимаю, что это не вариант для тебя. Поэтому можно пробовать писать web-приложение, и да, без таймеров тут не обойдешься. А чтобы не лагало, надо будет найти компромис между быстротой реакции и влиянием на производительность
Ответить с цитированием
  #16 (permalink)  
Старый 08.12.2010, 13:57
Ламер
Отправить личное сообщение для DooMer Посмотреть профиль Найти все сообщения от DooMer
 
Регистрация: 19.02.2010
Сообщений: 295

offiks,
вы сап транзакции прямо в ИЕ открываете ?
тогда тупо по таймеру спокойно можно сделать
Ответить с цитированием
  #17 (permalink)  
Старый 08.12.2010, 15:05
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от DooMer
сап транзакции
что такое SAP-транзакции?
Ответить с цитированием
  #18 (permalink)  
Старый 08.12.2010, 15:10
Ламер
Отправить личное сообщение для DooMer Посмотреть профиль Найти все сообщения от DooMer
 
Регистрация: 19.02.2010
Сообщений: 295

По работе пришлось сталкиватся, когда интегрировал СРМ в сап портал. Это актив икс, который открывается прямо в браузере, на офиц сайте сапа должны быть скрины. В сапе помоему любые действия называются транзакциями


Последний раз редактировалось DooMer, 08.12.2010 в 15:12.
Ответить с цитированием
  #19 (permalink)  
Старый 08.12.2010, 15:34
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

А вот оно что... так бы стразу, тогда этого для работы с буфером будет достаточно:

<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" />

Последний раз редактировалось monolithed, 08.12.2010 в 15:38.
Ответить с цитированием
  #20 (permalink)  
Старый 08.12.2010, 16:04
Ламер
Отправить личное сообщение для DooMer Посмотреть профиль Найти все сообщения от DooMer
 
Регистрация: 19.02.2010
Сообщений: 295

<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>

Если я понял ТСу надо такое
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Книга] Stoyan Stefanov, Javascript Patterns Dmitry A. Soshnikov Учебные материалы 20 13.08.2013 11:37
Помогите с javascript andruhin Общие вопросы Javascript 12 04.05.2012 10:05
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34
JavaScript на Яндекс.Фотки - почему тормозит браузеры? ZavFirefox Javascript под браузер 23 27.09.2009 19:24