Рассмотрим следующую разметку -
<h1 class="foo">
<span>Heading Text</span>
</h1>
<p class="foo">
<span>Paragraph Text</span>
</p>
При выборе и копировании Heading Text
весь элемент h1
копируется в буфер обмена, но при выборе и копировании Paragraph Text
только span
элемент копируется в буфер обмена (возможно, внутри нового элемента абзаца, поэтому класс теряется)
Почему существует разница в поведении копирования? Выбор - это выбор текстового узла, единственное отличие - родительский элемент.
Есть ли способ обойти это? Могу ли я принудительно скопировать родительский элемент вместе с текстовым узлом абзаца без изменения с помощью Selection API?
Протестировано на Chrome как в Windows, так и в OSX