OlegTimkiv Posted March 6, 2020 Share Posted March 6, 2020 Добрый день! Подскажите пожалуйста, как можно скопировать значение выделенной ячейки в буфер, на стороне клиента если editing = false; "document.execCommand(''copy'')" Quote Link to comment Share on other sites More sharing options...
Sherzod Posted March 6, 2020 Share Posted March 6, 2020 Добрый день! Может Вам нужно использовать такой подход? function copyToClipboard(text) { window.prompt("Copy to clipboard: Ctrl+C, Enter", text); } Quote Link to comment Share on other sites More sharing options...
OlegTimkiv Posted March 11, 2020 Author Share Posted March 11, 2020 On 3/6/2020 at 4:48 PM, Sherzod said: Добрый день! Может Вам нужно использовать такой подход? function copyToClipboard(text) { window.prompt("Copy to clipboard: Ctrl+C, Enter", text); } В некоторых браузерах есть checkbox -"Не давать этой странице создавать дополнительные диалоговые окна". Хотелось бы, сразу в буфер копировать. Такое тоже работать не будет "window.clipboardData.setData("Text", MainForm.UniEdit1.getValue());" Quote Link to comment Share on other sites More sharing options...
Sherzod Posted March 11, 2020 Share Posted March 11, 2020 On 3/6/2020 at 3:26 PM, OlegTimkiv said: как можно скопировать значение выделенной ячейки в буфер, на стороне клиента если editing = false Добрый день, Пожалуйста еще раз уточните... Каким образом Вы хотите скопировать значение, с помощью Ctrl+C, "ButtonCopy.Click", ... ? Quote Link to comment Share on other sites More sharing options...
OlegTimkiv Posted March 11, 2020 Author Share Posted March 11, 2020 Just now, Sherzod said: Добрый день, Пожалуйста еще раз уточните... Каким образом Вы хотите скопировать значение, с помощью Ctrl+C, "ButtonCopy.Click", ... ? ButtonCopy.Click Quote Link to comment Share on other sites More sharing options...
Sherzod Posted March 11, 2020 Share Posted March 11, 2020 17 minutes ago, OlegTimkiv said: ButtonCopy.Click Попробуйте... 1. UniDBGrid1.ClientEvents.UniEvents -> function beforeInit(sender, config) { sender.copyToClipboard = str => { const el = document.createElement('textarea'); el.value = sender.getSelection()[0].data[sender.uniCol]; document.body.appendChild(el); el.select(); document.execCommand('copy'); document.body.removeChild(el); }; } 2. Использование: procedure TMainForm.UniButton2Click(Sender: TObject); begin UniDBGrid1.JSInterface.JSCall('copyToClipboard', []); end; Quote Link to comment Share on other sites More sharing options...
OlegTimkiv Posted March 11, 2020 Author Share Posted March 11, 2020 3 minutes ago, Sherzod said: Попробуйте... 1. UniDBGrid1.ClientEvents.UniEvents -> function beforeInit(sender, config) { sender.copyToClipboard = str => { const el = document.createElement('textarea'); el.value = sender.getSelection()[0].data[sender.uniCol]; document.body.appendChild(el); el.select(); document.execCommand('copy'); document.body.removeChild(el); }; } 2. Использование: procedure TMainForm.UniButton2Click(Sender: TObject); begin UniDBGrid1.JSInterface.JSCall('copyToClipboard', []); end; Огромное Вам спасибо! Всё работает! 1 Quote Link to comment Share on other sites More sharing options...
zilav Posted February 10, 2021 Share Posted February 10, 2021 С последними FF кстати не работает, дает ошибку Quote document.execCommand(‘cut’/‘copy’) was denied because it was not called from inside a short running user-generated event handler. Quote Link to comment Share on other sites More sharing options...
Sherzod Posted February 10, 2021 Share Posted February 10, 2021 21 minutes ago, zilav said: С последними FF кстати не работает, дает ошибку FF 85.0.2 (64-битный) - работает... Quote Link to comment Share on other sites More sharing options...
zilav Posted February 10, 2021 Share Posted February 10, 2021 странно, тогда неясно почему у меня в PaleMoon не работает который на базе ff сделан. да и про ошибку такого типа на ff есть обсуждения, да она обходится, но городить огород ради каких-то нюансов отдельных браузеров не хочется https://stackoverflow.com/questions/41094318/firefox-document-execcommand-cut-copy-was-denied-because-it-was-not-calle Quote Link to comment Share on other sites More sharing options...
Sherzod Posted February 10, 2021 Share Posted February 10, 2021 3 minutes ago, zilav said: странно, тогда неясно почему у меня в PaleMoon не работает который на базе ff сделан. да и про ошибку такого типа на ff есть обсуждения, да она обходится, но городить огород ради каких-то нюансов отдельных браузеров не хочется https://stackoverflow.com/questions/41094318/firefox-document-execcommand-cut-copy-was-denied-because-it-was-not-calle On 3/11/2020 at 11:35 AM, Sherzod said: procedure TMainForm.UniButton2Click(Sender: TObject); begin UniDBGrid1.JSInterface.JSCall('copyToClipboard', []); end; Можно еще попробовать перенести код на клиентскую сторону, в функцию click. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.