Всем известно что в Firefox 41 прикрутили возможность копирования в буфер через JavaScript API. Мозилла последней реализовала эту фичу.
Все было бы ясно как день если бы можно было написать так:
execCommand("copy","text");
и даже не так а вот так:
clipboardCopy("text");
но нет же.. Придумали «Чужие для Хищников» такую лопату для бабы яги что бы ни один совецкий разведчик не разобрался без бутылки водки.
Правильно так:
execCommand("copy")
ЧТА ???
Но где текст который надо копировать ?
А он батенька должен быть выделен на странице.. мышкой или чем-то там другим.
т.е. Мозилловцы подумали что если текст будет выделен и его будут копировать то это будет безопасно. Как бы не так.. Выделенной частью можно манипулировать как угодно, например так:
$('texarea').val('Что угодно, БабаЯга').select()
К чему эти ухищрения ? непонятно.. могли бы сделать простую функцию копирования в буфер.
но вариант
clipboardCopy("text");
больше похож на PHP, где пришлось бы и BOLD делать отдельной функцией. Видимо не хотели что бы количество функций росло, но и методы для объектов их тоже не устроили и ребята вовсе избавились от контекста.
Проблемма. А теперь я хочу при нажатии на кнопку «Копировать URL» скопировать URL для некоего мифического сервиса, а этот URL я должен сгенерировать на лету и запомнить на сервере.
Тогда мне надо отправить запрос, получить id записи, и сгенерировать URL с новым id.
и..
так делать нельзя !
нельзя просто так взять и скопировать в буфер после работы с POST зарпосом.
ЧЕЗА ?
$.post('http://firefox-me.ru/test.php', function(){
console.log ("новый id="+id);
// кладем его в textarea
$('texarea').val('http://firefox-me.ru/service.php?id='+id).select()
// копируем
execCommand("copy")
})
не выйдет !
а если сначала скопировать URL а потом сделать POST запрос — пожалуйста.
но как мне тогда получить id от сервера ?
Правильно.. генери его на JavaScript:
var id = Math.floor(Date.now() / 1000) ;
но это же неправильно !?!?!
Правильно! Это неправильно !
Зато с такими костылями у вас будет работать сраный отсутствующий контекст для execCommand.
«Чужие для Хищников»
«Чужие для Хищников»
ЧЕЗА
ЕПТ
ЧЗХ