繁体   English   中英

Android Webview JavaScript函数不适用于锚标记

[英]Android webview javascript function not working for anchor tag

锚标签单击事件在使用webview的android jellybean 4.2.2中不起作用,在上述版本中,它工作正常。

webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("javascript:(function(){document.getElementById('Accounts').click();})()");

这是我的锚标签,我无法更改。

<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>

有解决方案:如果click()未使用android js接口实现,则必须使用HTML DOM事件对象,如下所示:

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

参考: https : //stackoverflow.com/a/22866913/5370550

这里的问题是事件绑定。 当您在webView.loadUrl中调用该函数时,它在dom中找不到具有该ID的元素并且无法绑定。 为避免此问题,您必须使用.on()函数。 例如

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

现在,使用此方法,具有此id的任何元素都将与此事件绑定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM