Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 18.09.2018, 09:27
Аватар для madeas
Профессор
Отправить личное сообщение для madeas Посмотреть профиль Найти все сообщения от madeas
 
Регистрация: 13.04.2018
Сообщений: 232

о, составил =) может пригодится кому

let copy = Array.from(document.querySelectorAll('.copy'));
  copy.forEach(function(teco) {
    teco.onclick = function() {
    let text = teco;
      text.select();
      document.execCommand('copy');
    }
  });


upd. странно только, в песочнице работает, а на сайте нет

Последний раз редактировалось madeas, 18.09.2018 в 09:43.
Ответить с цитированием
  #12 (permalink)  
Старый 18.09.2018, 10:58
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Работает и на сайте
<input type="text" class="copy" value="Text 1">
<input type="text" class="copy" value="Text 2">
<script>
let copy = Array.from(document.querySelectorAll('.copy'));
  copy.forEach(function(teco) {
    teco.onclick = function() {
      this.select();
      document.execCommand('copy');
    }
  });
</script>



Может, не хватает
document.designMode = "on";

здесь и в песочнице оно, очевидно, включено
Хотя нет...
alert(document.designMode);

Тогда непонятно
Цитата:
Когда HTML документ переключен в режим редактирования (document.designMode), для него будет доступен метод execCommand, который предоставляет команды для работы с контентом в редактируемой области.
execCommand

Последний раз редактировалось Dilettante_Pro, 18.09.2018 в 12:31.
Ответить с цитированием
  #13 (permalink)  
Старый 18.09.2018, 12:04
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Для этих задач вам не нужно что-то перебирать в массиве, как это сделано в примерах выше (и как это делает умный jQuery)...

Вот код решающий обе задачи без сторонних зависимостей
document.addEventListener("click", function(event) {
	if(event.target.matches(".nav-link")) {
		var active = document.querySelector(".nav-link.active");
		active && active.classList.remove("active");
		event.target.classList.add("active");
	}

	if(event.target.matches(".copy")) {
		event.target.select();
		document.execCommand("copy");
	}
});

Последний раз редактировалось Malleys, 18.09.2018 в 12:55. Причина: Добавил, что код работает без сторонних зависимостей ещё ✨рони молодец✨ обнаружил недочёт
Ответить с цитированием
  #14 (permalink)  
Старый 18.09.2018, 12:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Malleys,
строка 3, а если ещё нет active?
Ответить с цитированием
  #15 (permalink)  
Старый 18.09.2018, 12:52
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

То его и не будет! В первом посте указано, что оно есть. Однако же можно проверить, найден ли он!
Ответить с цитированием
  #16 (permalink)  
Старый 18.09.2018, 12:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от Malleys
Однако же можно проверить, найден ли он!
Ответить с цитированием
  #17 (permalink)  
Старый 18.09.2018, 16:09
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от Dilettante_Pro
let copy = Array.from(document.querySelectorAll('.copy'));
  copy.forEach(function(teco) {
Array.from(document.querySelectorAll('.copy'), function(teco) {
Ответить с цитированием
  #18 (permalink)  
Старый 18.09.2018, 17:13
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

j0hnik,
Это я по складАм, чтобы было понятно...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
active class porezon Общие вопросы Javascript 5 19.07.2016 09:52
Присвоить разные class элементу li, какаие есть способы? aleksandr8i Javascript под браузер 11 12.03.2015 23:46
Помогите разобраться с плагином link (tinymce) nkl jQuery 0 08.04.2014 13:25