Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Можно ли получить через js доступ к скопированному тексту (https://javascript.ru/forum/events/31069-mozhno-li-poluchit-cherez-js-dostup-k-skopirovannomu-tekstu.html)

lord2kim 25.08.2012 19:48

Jeremen, да, но в принципе уже есть готовые реализации в инете...
Deff, это понятно...имел ввиду, что нельзя отредактировать то, что уже там есть...только перезаписать

cyber 25.08.2012 20:10

Цитата:

Сообщение от Jeremen (Сообщение 200455)
cyber, ну припустим при событии copy можно же как-то доступ к тому что мы скопировали получить?

событе сopy можно самому с эмулировать
<!DOCTYPE HTML>
<html>
  <head> 
  <script>
  function getSelectionText() {
  var txt = '';
    if (txt = window.getSelection) {// Не IE, используем метод getSelection
    txt = window.getSelection().toString();
  } else { // IE, используем объект selection
    txt = document.selection.createRange().text;
  }
  return txt;
}
    </script> 
  </head>
  <body>
    <input id='in' value='text' type='text'><div ></div>
    <script>
var inp = document.getElementById('in');

      inp.onfocus = function () {
      
      var ctrl;
        this.onkeydown= function (e) {
        
        
           if (e.ctrlKey) ctrl = true;
          
          
          if (!ctrl || e.keyCode != 67) return;
          
          
          this.nextElementSibling.innerHTML ='copy '+ getSelectionText();
          
        }
      
          this.onkeyup = function (e) {
          
            if (e.ctrlKey) ctrl = false;
          }   
      
      }

    </script>

  </body>
</html>

cyber 25.08.2012 20:26

и вообще разработчикам нужно руки отрывать за возможность доступа к буферу через флеш, и не дай бог в хтмл 5 добавят:nono:

Deff 25.08.2012 20:35

cyber,
Не наю - А как бы Вы копировали коды отсель , из топика ?
Имхо - запись в буфер - нужна... На счет копи из буфера пока не возникало актуальной задачи (хотя может в играх и оформлении текстов в cаnvas -редакторах может и актуально, по крайней мере в ФШ весьма неудобно набивать скопированные тексты - руками, особенно если они на иностранном, китайском, к примеру

cyber 25.08.2012 20:43

Цитата:

Сообщение от Deff (Сообщение 200472)
cyber,
Не наю - А как бы Вы копировали коды отсель , из топика ?
Имхо - запись в буфер - нужна... На счет копи из буфера пока не возникало актуальной задачи (хотя может в играх и оформлении текстов в cаnvas -редакторах может и актуально, по крайней мере в ФШ весьма неудобно набивать скопированные тексты - руками, особенно если они на иностранном, китайском, к примеру

опять на вы?
ты опредились то на вы или на ты=)
у меня флеша нет вообще так что я копирую через новое окно(кнопка справа от кнопки копировать в буфер):victory:

Aetae 25.08.2012 20:51

Цитата:

Сообщение от Jeremen (Сообщение 200460)
то есть на чистом js нельзя написать скрипт который бы при копировании текста с страницы со скриптов добавлял в скопированный текст ссылки откуда скопирован текст?

Это сделать можно, но не через буфер. Я уже видел на какой-то странице реализацию.
Суть в том что при выделении в конец выделения добавляется невидимый блок в котором содержится нужный копирайт.

Пример: для FF, выделите и скопируйте текст
<!DOCTYPE HTML>
<html>
<head>
	<script type="text/javascript">
	var copy = document.createElement('div');
	copy.innerHTML = '&copy; developer.mozilla.org';
	copy.style.cssText = 'position:absolute;width:0;height:0;top:-999px;left:-999px;z-index:-999;';
	window.onmouseup = function(){
		var sel = window.getSelection();
		if(sel.toString()){
			var range = sel.getRangeAt(sel.rangeCount-1).cloneRange();
			range.collapse(false);
			range.insertNode(copy);
			range.selectNode(copy);
			sel.addRange(range);
		}else{
			document.body.appendChild(copy);
		}
	}
	</script>
</head>
<body>
Selection is the class of the object returned by window.getSelection() and other methods. It represents the text selection in the greater page, possibly spanning multiple elements, when the user drags over static text and other parts of the page. For information about text selection in an individual text editing element, see Input, TextArea and document.activeElement which typically return the parent object returned from window.getSelection().

</body>
</html>

Jeremen 25.08.2012 20:51

cyber, а чем плохо доступ к буферу?

dmitriymar 25.08.2012 20:57

да уж, ничего не поменялось...:-/
http://stackoverflow.com/questions/8...th-firefox-api
https://developer.mozilla.org/en-US/..._the_Clipboard
и не только фф..

cyber 25.08.2012 20:58

Цитата:

Сообщение от Jeremen (Сообщение 200481)
cyber, а чем плохо доступ к буферу?

если есть доступ буферу:
-с буфера можно свиснуть инфу
- в буфер можно добавить инфу

cyber 25.08.2012 21:02

а флеш я ненавижу за то что мне на мой андроид смарт какой то [censored] закинул вирус через флеш, и свиснул 20$ с счета (все деньги что были на счету), после этого я не использую флеш.
А насчет хмтл 5 вроде есть браузер на движке хрома который запрещает доступ к буферу..


Часовой пояс GMT +3, время: 12:55.