I believe I did

It's this snippet for copy

event.clipboardData.setData("text/plain", data);

On Thu, Oct 20, 2022 at 1:52 PM Pramod Patil <[email protected]>
wrote:

> Thank you again, I understand security implications but objective is to
> make it work for Edge, I have control over native methods, getClipBoardata
> and setClipboardData(String data)  which are native methods in java. The
> code which I have pasted above is working fine with IE browser, but not
> with modern browsers. So can you help me with the code/pointers which can
> replace above code and work for Edge,Chrome. Thanks.
>
> On Thursday, 20 October 2022 at 14:52:22 UTC+5:30 [email protected] wrote:
>
>> Well if I remember correctly it is not supposed to access the clipboard
>> directly because that would be a huge security issue.
>>
>> Consider the following scenario. You copy / paste your password for your
>> bank somewhere. Then you go to a random webpage. If the javascript of this
>> webpage that runs on your computer/browser could access
>> (getClipboardData()) your clipboard your bank password would be compromised.
>>
>> So you can only access the clipboard from inside an event handler that
>> handles the "copy" event aka Ctrl+C.
>>
>> The necessary details to access the data differ from IE and so I have
>> posted examples.
>>
>> I do not know why your code does not compile. I think native methods are
>> not checked so they tend to give NULL errors during runtime. If that is
>> your case then caniuse is your friend.
>>
>>     Vassilis
>>
>>
>>
>> On Thu, Oct 20, 2022 at 11:12 AM Pramod Patil <[email protected]>
>> wrote:
>>
>>> Hi Thanks for your response,
>>> on both front at GWT and Javascript  I am at beginners level, will it be
>>> possible to have modification in below function, which will
>>> support copyclipboard functionality with Microsoft Edge. I tried
>>> navigator.clipboard.writeText() but code is not getting compiled.
>>> public static native String getClipboardData()/*-{
>>> i*f($wnd.clipboardData && clipboardData.setData){*
>>> *return $wnd.clipboardData.getData('Text');*
>>> }
>>>
>>> On Thu, Oct 20, 2022 at 12:36 PM Vassilis Virvilis <[email protected]>
>>> wrote:
>>>
>>>> For non IE browsers I have this:
>>>>
>>>>             // attach event listeners
>>>>             // copy - cut - paste handlers
>>>>             ((Element) Js.cast(getElement())).addEventListener("copy",
>>>> copy_li);
>>>>             ((Element) Js.cast(getElement())).addEventListener("cut",
>>>> cut_li);
>>>>             ((Element) Js.cast(getElement())).addEventListener("paste",
>>>> paste_li);
>>>>
>>>> where (Element) is elemental2.dom.Element
>>>>
>>>> copy_li is something like this:
>>>>
>>>>         final elemental2.dom.EventListener copy_li = new
>>>> elemental2.dom.EventListener() {
>>>>             @Override
>>>>             public void handleEvent(elemental2.dom.Event evt) {
>>>>                 final ClipboardEvent event = Js.cast(evt);
>>>>                 copy(event);
>>>>             }
>>>>         };
>>>>
>>>> where ClipboardEvent is elemental2.dom.ClipboardEvent
>>>>
>>>> I need a copy function because I reuse it in the "Cut" functionality
>>>> also.
>>>>
>>>> and finally copy is something like this
>>>>
>>>>    private void copy(ClipboardEvent event) {
>>>>         if (!hasData()) {  // <-- hasData() is your application
>>>> specific function
>>>>             return;
>>>>         }
>>>>
>>>>         // do application stuff get/iterate and finally get the data in
>>>> a String form somehow...
>>>>         final String data = getData();  // application specific
>>>>
>>>>         event.clipboardData.setData("text/plain", data);
>>>>         event.preventDefault();
>>>>     }
>>>>
>>>> Similarly the paste evenListener:
>>>>
>>>>         final elemental2.dom.EventListener paste_li = new
>>>> elemental2.dom.EventListener() {
>>>>             @Override
>>>>             public void handleEvent(elemental2.dom.Event evt) {
>>>>                 final ClipboardEvent event = Js.cast(evt);
>>>>                 final String data =
>>>> event.clipboardData.getData("text/plain")
>>>>                 event.preventDefault();
>>>>                 if (data == null)
>>>>                     return;
>>>>
>>>>                 // now you need somehow to propagate data to the
>>>> interesting parties (methods, classes etc)
>>>>                 // I am using the EventBus from GWT
>>>>                 getEventBus().fireEvent(new PasteEvent(data));
>>>>             }
>>>>         };
>>>>
>>>> Hope that helps
>>>>
>>>>      Vassilis
>>>>
>>>> On Thu, Oct 20, 2022 at 9:18 AM Pramod Patil <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi All,
>>>>> In our GWT application we are using Java native method call for
>>>>> Copytoclipboard functionality. Please refer below code
>>>>>
>>>>> public static native String getClipboardData()/*-{
>>>>> if($wnd.clipboardData && clipboardData.setData){
>>>>> return $wnd.clipboardData.getData('Text');
>>>>> }
>>>>> }
>>>>> }-*/
>>>>> public static native String setClipboardData(String data)/*-{
>>>>> if($wnd.clipboardData && clipboardData.setData){
>>>>> return $wnd.clipboardData.setData('Text',Data);
>>>>> }
>>>>> }
>>>>> }-*/
>>>>>
>>>>> So above code is working fine with IE browser but not working with
>>>>> modern browser. I know this is not GWT specific question, but I don't have
>>>>> much knowledge with Javascript, so anyone who knows Javascript, please 
>>>>> help
>>>>> here.
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "GWT Users" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/d/msgid/google-web-toolkit/c7ebae01-b41f-440a-b4da-b6c1c91231e3n%40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/google-web-toolkit/c7ebae01-b41f-440a-b4da-b6c1c91231e3n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>>
>>>>
>>>> --
>>>> Vassilis Virvilis
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "GWT Users" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/d/msgid/google-web-toolkit/CAKbOjEybr2Kr5hEZ12tKccfMMuR6QZGazTZuZqRHVMd0bKg3ZA%40mail.gmail.com
>>>> <https://groups.google.com/d/msgid/google-web-toolkit/CAKbOjEybr2Kr5hEZ12tKccfMMuR6QZGazTZuZqRHVMd0bKg3ZA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>
>>>
>>> --
>>> Thanks and regards,
>>>  Pramod Patil
>>>  Contact +91-8975432800 <+91%2089754%2032800>
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "GWT Users" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>>
>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/google-web-toolkit/CAAXS9-UatQ84dXiZeD7Q0TSXA9HT56UGZQLCzvZ4fFqbEoF23A%40mail.gmail.com
>>> <https://groups.google.com/d/msgid/google-web-toolkit/CAAXS9-UatQ84dXiZeD7Q0TSXA9HT56UGZQLCzvZ4fFqbEoF23A%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>
>>
>> --
>> Vassilis Virvilis
>>
> --
> You received this message because you are subscribed to the Google Groups
> "GWT Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/google-web-toolkit/f7386ec6-494b-4754-94dd-cbfbb42e8f22n%40googlegroups.com
> <https://groups.google.com/d/msgid/google-web-toolkit/f7386ec6-494b-4754-94dd-cbfbb42e8f22n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>


-- 
Vassilis Virvilis

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit/CAKbOjEzshqm%2Bs-SUOZuuqSSH-2AR_T9nmcZ9O%2BK7Lcxoy-_R-A%40mail.gmail.com.

Reply via email to