OlegTimkiv Posted March 6, 2020 Share Posted March 6, 2020 Добрый день! Подскажите пожалуйста, как можно скопировать значение выделенной ячейки в буфер, на стороне клиента если editing = false; "document.execCommand(''copy'')" 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); } 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());" 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", ... ? 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 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; 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 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. 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-битный) - работает... 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 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. Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now