如何在javascript和html中实现android低版本设备的onclick
How to implement onclick in javascript and html for devices with lower versions of android?
我正在研究一个在更高版本的设备上完美工作的项目-我已经在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";
}
问题:
在android 2.2.1和2.3.5版本中,onclick功能偶尔会起作用。当不断尝试点击突然函数被调用。我已经试着修复这个错误将近2天了。
我也遇到过类似的CSS位置问题:fixed。这在较低版本的android中不支持。有人给了我一个解决办法。
我已经尝试了这个addEventListener函数,它不适合我。
我希望我能找到解决这个问题的方法。
请帮助我解决这个问题并指导我!
EDIT:1 touchevent and 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();
}
}
这在高端版本中有效,但在低端版本中无效。我知道提到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,并在你的设备上试用。
基于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>
你不能在页面上使用所有的事件。
如果你附加了鼠标向下,鼠标向上,点击,触点等。有很多组合。
我建议:-实现设备/浏览器检测器-然后附加移动触摸和桌面点击事件
- 您可以使用组合,但使用所有点击和触摸变体OR所有触摸和一个经典桌面事件。
最佳组合:onClick和只有一个鼠标向下或鼠标向上。然后实现一些触摸事件,如果你有问题的某些功能。
你也可以像这样写简单的代码:
<div onClick="CALL();" ontouchstart="CALL();" >
你可以在这个答案中找到我的检测浏览器/设备脚本:类似问答
选择虚拟鼠标(vmouse)绑定可以下载自定义Jquery移动下载
在你的代码中包含这个生成的javascript并使用代码片段
$(document).on('vclick', '.popmenu', function(event){
// DO stuff
});
点击事件现在将工作在桌面/移动版本的预加载和动态内容与class='popmenu'
- 如何在执行此特定onclick事件时执行JavaScript函数
- JS编译器/包管理器,用于版本控制
- jQuery-2.1.1.min.js或最新版本jQuery-2.13.min.js不会't支持'@
- Setting default onclick behavior for <img> tag in gene
- Chrome加载旧版本的Javascript文件
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- Javascript全局onclick监听器
- 如何调用“;链接_;在onclick事件上使用Javascript
- onclick函数需要双击,因为类分配延迟
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 使用onclick绘制SVG路径
- 如何将数据从onclick按钮传递到变量
- 选择onclick事件jquery
- I'我设计了一个下拉菜单,onclick会出现,而on blur会消失
- 为什么jQuery 1.8不能在IE8和InternetExplorer9中使用?(截至2012年9月的IE9最新版本)
- onClick窗口.位置在Chromium(谷歌Chrome的Linux版本)中不起作用
- OnClick功能在IE 10中不起作用,但在旧版本中可以
- 如何在javascript和html中实现android低版本设备的onclick
- 如何修复onclick在Phonegap/Android,特别是在较低版本的Android
- jssor onclick打开更大的版本