Skip to content

Commit 3696739

Browse files
committed
Prevents scroll jump on iOS when using "data-clipboard-text"
Thanks to @geraldarthur at zenorocha#369
1 parent 63d1b0f commit 3696739

File tree

4 files changed

+13
-5
lines changed

4 files changed

+13
-5
lines changed

dist/clipboard.js

+11-2
Original file line numberDiff line numberDiff line change
@@ -240,9 +240,19 @@ function select(element) {
240240
selectedText = element.value;
241241
}
242242
else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {
243-
element.focus();
243+
var isReadOnly = element.hasAttribute('readonly');
244+
245+
if (!isReadOnly) {
246+
element.setAttribute('readonly', '');
247+
}
248+
249+
element.select();
244250
element.setSelectionRange(0, element.value.length);
245251

252+
if (!isReadOnly) {
253+
element.removeAttribute('readonly');
254+
}
255+
246256
selectedText = element.value;
247257
}
248258
else {
@@ -452,7 +462,6 @@ module.exports = E;
452462
this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';
453463
// Move element to the same position vertically
454464
var yPosition = window.pageYOffset || document.documentElement.scrollTop;
455-
this.fakeElem.addEventListener('focus', window.scrollTo(0, yPosition));
456465
this.fakeElem.style.top = yPosition + 'px';
457466

458467
this.fakeElem.setAttribute('readonly', '');

0 commit comments

Comments
 (0)