javascript - 如何为低版本android设备在javascript和html中实现onclick?

标签 javascript android html onclick cordova

我正在做一个在更高版本的设备上完美运行的项目——我已经在 4.1.2 版本中检查过了。

问题是它不能在 android 版本 2.2.1 和 2.3.5 的设备上工作。

我有六张图像,我已经添加了功能。 2 个图像的功能是使用 id 值调用不同的 HTML 页面。其他四张图片的功能也是一样的,只是图片会根据数据库的值显示。

2 个图像的功能是调用具有 id 值的不同 HTML 页面。

这就是我的编码方式..

<div id="header " class="header ">
     <div id="header_title" class="header_title"> </div>
     <div id="abc" class="abc"><img src="img/abc.png" onClick="abc()"/></div>
-----so -on

我已将 abc 函数声明为

function abc(){
   window.location.href="index.html";
}

其他四张图片的功能也是一样的,只是图片会根据数据库的值显示。

if(value_in_db==0) {
  document.getElementById("xyz").innerHTML = '<img src="img/inactive.png" />'
} else {
  document.getElementById("xyz").innerHTML = '<img src="img/active.png" onclick="xyz()"/> '
}

我已将 xyz 函数声明为

function xyz(){
   window.location.href="basic.html";
}

面临的问题:

onclick 功能在 android 版本 2.2.1 和 2.3.5 中偶尔起作用。当继续尝试突然单击时,该函数被调用。我已尝试修复此错误近 2 天。

我曾遇到过与 CSS position:fixed 类似的问题。这在较低版本的 android 中不受支持。有人建议我使用解决方案 here .

我试过这个addEventListener function它对我不起作用。

我希望我能找到解决这个问题的方法。

请帮我解决这个问题并指导我!

编辑:1 touchevent 和 deviceready

document.addEventListener("deviceready", onDeviceReady, false);
document.addEventListener( "touchstart", function(e){ onStart(e); }, false );
function onStart ( touchEvent ) 
{
   if( navigator.userAgent.match(/Android/i) ) 
   {
        touchEvent.preventDefault();
   }
}

这适用于高端版本,但不适用于低端版本。我知道提及 2 document.addEventListener 毫无根据..因为它在更高版本中工作。我继续它。

最佳答案

这是非常基本的功能,应该适用于所有版本的 Android - 您确定不是您代码中的其他内容导致了问题吗?

我在运行 Android 2.3.4 的 HTC HD2 上使用最新的 Cordova 2.8.0 尝试了这个测试用例,它一直运行良好:

<!DOCTYPE html>
<html>
    <head>     
        <meta charset="utf-8">
        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
        <script type="text/javascript">
            function abc(){
               window.location.href="foo.html";
            }
        </script>
    </head>
    <body>
         <h1>Index page</h1>
         <div id="abc" class="abc"><img src="img/abc.jpg" onClick="abc()"/></div>
    </body>
</html>

可以下载我的Eclipse测试工程和编译好的APK here并在您的设备上试用。

根据您的 JSFiddle 代码更新:

您的 HTML 包含多个语法错误 - 其中之一可能导致 Android 2.x 出现问题,而 4.x 可能更容错:

1) #header id 属性包含尾随空格。替换

<div id="header " class="header "><div id="header" class="header">

2) 属性值应该被引用。替换 <img name="slide" src="img/abc.jpg" width=100%; /><img name="slide" src="img/abc.jpg" width="100%" />

3) 你有一个额外的关闭 div 标签。替换

<div id="footer"  class="footer">
    <div id="footer_text" style="color:#ffffff">footer</div>
    </div>
</div>

<div id="footer"  class="footer">
    <div id="footer_text" style="color:#ffffff">footer</div>
</div>

关于javascript - 如何为低版本android设备在javascript和html中实现onclick?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17059097/

相关文章:

android - 如何在 android 中制作 "contains"以忽略字母的大写?

javascript - 如何拥有不同分辨率/调整大小友好的网站?

javascript - 注入(inject)包含JS的HTML

javascript - 有条件地完成链中的 promise

javascript - 为什么标签不显示在图表中

java - 使用隐式 Intent 发送电子邮件

javascript - jointjs 中的样式特定端口

java - 运行 Eclipse 进行 Android 开发时出错 - "Java was started but returned exit code 13"

javascript - 将小 js 文件合并为一个大文件

javascript - 清除表单输入字段