小编gre*_*ers的帖子

优化触摸设备的网站

在像iPhone/iPad/Android这样的触摸设备上,用手指敲击一个小按钮很困难.没有跨浏览器方式来检测我所知道的CSS媒体查询的触摸设备.所以我检查浏览器是否支持javascript触摸事件.到目前为止,其他浏览器还没有支持它们,但是开发者频道上的最新Google Chrome 启用了触摸事件(即使是非触摸设备).而且我怀疑其他浏览器厂商会跟进,因为带触摸屏的笔记本电脑正在上市.更新:这是Chrome中的一个错误,所以现在JavaScript检测再次起作用.

这是我使用的测试:

function isTouchDevice() {
    return "ontouchstart" in window;
}
Run Code Online (Sandbox Code Playgroud)

问题是,这只测试浏览器是否支持触摸事件,而不是设备.

有谁知道正确的[tm]方式为触控设备提供更好的用户体验?除了嗅探用户代理.

Mozilla有触摸设备的媒体查询.但我在其他任何浏览器中都没有看到类似的内容:https: //developer.mozilla.org/En/CSS/Media_queries#-moz-touch-enabled

更新:我想避免为移动/触摸设备使用单独的页面/网站.解决方案必须通过JavaScript检测具有对象检测功能的触摸设备,或者包含自定义触摸CSS而无需用户代理嗅探!我问的主要原因是,在我联系css3工作组之前,确保今天不可能.如果你不能按照问题的要求请不要回答;)

javascript css usability touch dom-events

67
推荐指数
2
解决办法
4万
查看次数

可以从数组中分配多个变量吗?

它是从JavaScript中的数组分配多个变量的标准方法吗?在Firefox和Opera中,您可以:

var [key, value] = "key:value".split(":");
alert(key + "=" + value); // will alert "key = value";
Run Code Online (Sandbox Code Playgroud)

但它在IE8或谷歌浏览器中不起作用.

有没有人知道在没有tmp变量的其他浏览器中这样做的好方法?

var tmp = "key:value".split(":");
var key=tmp[0], value=tmp[1];
Run Code Online (Sandbox Code Playgroud)

这是即将出现的JavaScript版本,还是FF和Opera中的自定义实现?

javascript

35
推荐指数
3
解决办法
2万
查看次数

标签 统计

javascript ×2

css ×1

dom-events ×1

touch ×1

usability ×1