简体   繁体   English

Android WebView JavaScript onClick错误

[英]Android WebView JavaScript onClick Bug

I have some JavaScript which adds some CSS when a button is clicked using the onClick() event. 我有一些JavaScript ,使用onClick()事件单击按钮时会添加一些CSS This works perfectly in all the browsers that have tested (Safari, Firefox, Chrome etc), and also works on all mobiles including within the iOS UIWebView object. 这在所有经过测试的浏览器(Safari,Firefox,Chrome等)中都可以完美运行,并且还可以在包括iOS UIWebView对象在内的所有移动iOS

However although it works perfectly in the Google Chrome browser on an android phone it does not work within the Android WebView object. 但是,尽管它可以在Android手机上的Google Chrome浏览器中完美运行,但无法在Android WebView对象中运行。 Nothing happens at all. 什么都没发生。

Changing it from an onClick() event to a touchstart() event works. 可以将其从onClick()事件更改为touchstart()事件。

Also adding alert() inside the onClick() works too, it just seems that the onClick() event is incapable of adding CSS styling inside the Android WebView object onClick() alert()内添加alert()也是onClick() ,似乎onClick()事件无法在Android WebView对象内添加CSS样式

What the hell is going on, is this some kind of bug, it seems to happen on every Android mobile I have test on, all with a different OS version :S 到底是怎么回事,这是某种错误,它似乎发生在我测试过的每款Android手机上,所有的操作系​​统版本都不同:

Here is the code I have been using 这是我一直在使用的代码

if (login) {
    login.addEvent('click', function(e){
        e.stopPropagation();
        $('login_items_wrapper').setStyle('opacity', '0');
        $('loading_content_login').show();
    });
}

Can anyone help?? 有人可以帮忙吗?

I tried this "duplicate version" in nature JS and it's work for me: 我在自然JS中尝试了这个“重复版本”,对我来说很有效:

if (login) {
    login.onclick = myFunc();
    login.addEventListener('click', function() {
        myFunc();
    });
}

function myFunc() {
    $('.login_items_wrapper').setStyle('opacity', '0');
    $('.loading_content_login').show();
}

You need to change 你需要改变

$('login_items_wrapper').setStyle('opacity', '0');
$('loading_content_login').show();

to

$('.login_items_wrapper').setStyle('opacity', '0');
$('.loading_content_login').show();

or 要么

$('#login_items_wrapper').setStyle('opacity', '0');
$('#loading_content_login').show();

As you are not correctly referencing the elements. 由于您未正确引用元素。

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

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