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.

Reply via email to