2017-07-29 1 views
0

Anchor-Tag klicken Ereignis funktioniert nicht in Android Jellybean 4.2.2 mit Webview, In der obigen Version funktioniert es gut.Android-Webview-JavaScript-Funktion funktioniert nicht für Anchor-Tag

Dies ist mein Anker-Tag und ich kann das nicht ändern.

<a href="Finacle;jsessionid=0000AT9YD5vrnOS9NJzIjdjJ4PD:1a33q40b7?bwayparam=j%2B2uf%2FBHaNA0ZGWt4ROCCTymgTzXQqv11%2Bfo1g9Jr8Zb1X2StMH26Jd%2FQ0EiE794ALKyEOjpbxhCm3IPgN61zCmWB5ZhKo2OiZRnAsRFLde2n56Kv4yz8ENMvTFzO6T8%0D%0AtXQFDgFsZMbGS28KN44DLVBb%2FQGDyNdvWhqaDSd5aqZEjDO0l1B%2F6x6RovcROwnJSFAG3awM%2FmbNHLvuSTcrwYeETC8B7UVmQBproSd7%2BC0%3D" 
id="Accounts" name="HREF_Accounts">Accounts</a> 

Got Lösung: IF click() android js-Schnittstelle nicht implementiert ist, müssen wir HTML DOM Event-Objekt, wie folgt verwenden:

webView.loadUrl("javascript:(function(){"+ 
    "l=document.getElementById('Accounts');"+ 
    "e=document.createEvent('HTMLEvents');"+ 
    "e.initEvent('click',true,true);"+ 
    "l.dispatchEvent(e);"+ 
    "})()"); 

Referenz: https://stackoverflow.com/a/22866913/5370550

Antwort

0

Das Problem hier ist EventBinding. Wenn Sie die Funktion in webView.loadUrl aufrufen, findet sie kein Element mit dieser ID im Dom und kann nicht binden. Um dieses Problem zu vermeiden, müssen Sie die Funktion .on() verwenden. ZB

$('#Accounts').on('click',function(){ 
//... 
}); 

Jetzt mit dieser Methode wird jedes Element mit dieser ID Bindung mit diesem Ereignis sein.

+0

Wie kann ich das mit Javascript konvertieren? – Nik

+0

Sie können diese jquery direkt als Javascript hinzufügen. Wie WebView.loadUrl ("javascript: $ ('# Accounts'). On ('click', function() { // ... });") –

+0

Vergessen Sie auch nicht Javascript in der Webansicht zu aktivieren : WebView.getSettings(). SetJavaScriptEnabled (true); –

Verwandte Themen