an ios friendly copy

This commit is contained in:
Danny Coates 2017-08-03 20:13:17 -07:00
parent fb41a40128
commit b93a33eba4
No known key found for this signature in database
GPG key ID: 4C442633C62E00CB
2 changed files with 25 additions and 12 deletions

View file

@ -2,6 +2,7 @@
require('./common');
const FileSender = require('./fileSender');
const {
copyToClipboard,
notify,
gcmCompliant,
findMetric,
@ -79,12 +80,7 @@ $(document).ready(function() {
sendEvent('sender', 'copied', {
cd4: 'success-screen'
});
const aux = document.createElement('input');
aux.setAttribute('value', $('#link').attr('value'));
document.body.appendChild(aux);
aux.select();
document.execCommand('copy');
document.body.removeChild(aux);
copyToClipboard($('#link').attr('value'));
//disable button for 3s
$copyBtn.attr('disabled', true);
$('#link').attr('disabled', true);
@ -392,12 +388,7 @@ $(document).ready(function() {
sendEvent('sender', 'copied', {
cd4: 'upload-list'
});
const aux = document.createElement('input');
aux.setAttribute('value', url);
document.body.appendChild(aux);
aux.select();
document.execCommand('copy');
document.body.removeChild(aux);
copyToClipboard(url);
document.l10n.formatValue('copiedUrl').then(translated => {
link.innerHTML = translated;
});

View file

@ -114,9 +114,31 @@ function sendEvent() {
.catch(() => 0);
}
function copyToClipboard(str) {
const aux = document.createElement('input');
aux.setAttribute('value', str);
aux.contentEditable = true;
aux.readOnly = true;
document.body.appendChild(aux);
if (navigator.userAgent.match(/iphone|ipad|ipod/i)) {
const range = document.createRange();
range.selectNodeContents(aux);
const sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
aux.setSelectionRange(0, str.length);
}
else {
aux.select();
}
document.execCommand('copy');
document.body.removeChild(aux);
}
const ONE_DAY_IN_MS = 86400000;
module.exports = {
copyToClipboard,
arrayToHex,
hexToArray,
notify,