Я написал скрипт с моим коллегой, который позволяет пользователям добавлять строки разрыва в свой текст (помещая в него невидимые символы ascii - как это делает «Генератор титров IG LineBreak») и автоматически копировать результаты в буфер обмена - готовый квставлять в социальные сети или куда угодно.
Везде, где все работает, кроме ios - мы проверили это на iOS 11 и 12.
На IOS, когда функция активирована (с помощьюнажатием кнопки) просто ... ничего не происходит.Или, чтобы быть ясным: предупреждение появляется, но текст не скопирован.
Можете ли вы помочь мне найти лучший способ применить эту функцию?
(function(global) {
global.copyToClipboard = copyToClipboard
// MicroModal.init()
function copyToClipboard(el) {
el = typeof el === 'string' ? document.querySelector(el) : el
el.value = replaceNewLines(el)
if (isOldDevice()) {
oldSelect(el)
} else {
el.select()
}
document.execCommand('copy')
alert(
'Done! Your text has been added to the clipboard: paste it on instagram to make your caption or comment beautifully readable.',
)
//MicroModal.show('modal-1')
}
function replaceNewLines(el) {
return el.value.replace(/(?:\r\n|\r|\n)/g, '\u2063\n')
}
function isOldDevice() {
navigator.userAgent.match(/ipad|ipod|iphone/i)
}
function oldSelect(el) {
var editable = el.contentEditable
var readOnly = el.readOnly
el.contentEditable = true
el.readOnly = true
var range = document.createRange()
range.selectNodeContents(el)
var selection = window.getSelection()
selection.removeAllRanges()
selection.addRange(range)
el.setSelectionRange(0, 999999)
el.contentEditable = editable
el.readOnly = readOnly
}
})(this)
(ДляВо избежание недоразумений: я уже посмотрел другие посты о копировании и вставке в StackOverflow, но не смог применить предложенные решения: я ищу решение, совместимое с типом сценария в этом вопросе) * +1010 *