Я не уверен на 100%, как описать это, поэтому я просто вставлю три части соответствующего кода.document.execCommand ('copy') на объектах не в DOM?
Я могу это сделать:
var dl = $('<a>',{
style: 'display: none',
download: this.name + '.txt',
href: window.URL.createObjectURL(data, {type: "octet/stream"}))
});
dl[0].click();
и я могу это сделать:
copydeck = $("<textarea>").val(this.list.join("\r\n"));
$('body').append(copydeck);
copydeck.select();
document.execCommand('copy');
copydeck.remove();
Но я не могу это сделать:
copydeck = $("<textarea>").val(this.list.join("\r\n"));
copydeck[0].select();
document.execCommand('copy');
Почему? Что мне здесь не хватает? Я не могу выбрать или скопировать элементы не в DOM? Есть ли способ сделать это, не добавляя объект в тело?
'document'.execCommand ('copy') должен быть неявным. – Hacketo
Я предполагаю, что вы не можете «копировать» из элементов, которые еще не существуют в DOM. – Cerbrus
'copydeck [0] .remove();' - поскольку вы никогда не добавляли элемент нигде, его некуда удалить. И за исключением очень современных браузеров, вы не хотите этого '[0]'. Вы хотите, чтобы jquery 'remove', а не DOM. Но только если вы действительно положили его в DOM. –