- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
此代码片段曾经有效。我认为 Google Chrome 最近的更新破坏了它。还有人看到这个吗?
function DenyIfTablet() {
try {
document.createEvent("TouchEvent");
alert("Silverlight not supported on touch-screen devices.");
window.location = document.referrer;
}
catch(exception){
//OK to continue.
}
}
在 IE9 下,会引发异常并且不会发生警报/重定向。
在 Chrome 17.0.963.43 下,即使我没有使用触摸屏设备,不会抛出异常,并且我会被重定向。
我在这里做了什么不当的事情吗?还是在 Chrome 更新中地毯被拉出了我下面?
最佳答案
是的,Chrome 17 和 18 中发生了一些变化,导致该测试无法正常工作,但在 19 中又可以正常工作。但是,面对浏览器选择的多种不同表达方式,该测试可能不够稳健他们对触摸的支持。
modernizr人们对此进行了大量研究,研究结果涵盖了数百个版本的浏览器、移动设备和桌面设备,如下:
http://modernizr.github.com/Modernizr/touch.html
我的理解是,无论好坏(大多数情况下更糟),都没有检测支持的 Elixir (甚至没有一个商定的标准方法来检测支持)。
modernizr 检测支持的主要方式是
('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch
但随后他们继续注入(inject)一个带有“支持触摸”媒体查询的元素,并测试它是否有效果以更加确定(这有点难以理解,但请查看 source )。
所以,我至少会考虑切换到 ontouchstart 测试(它在该 browserscope 列表中看起来最接近右侧),但是,如果你真的想得到它的正确,我只会使用modernizr。
关于jquery - PC 上的 Google Chrome 在 document.createEvent ("TouchEvent"处成功)...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9266662/
我正在研究 IO 重定向程序,并成功地为它创建了 poc。该程序生成子进程并使用命名管道与其通信。只要管道上有数据,我就使用 Event 对象来获取事件。默认情况下,我将事件设置为信号状态,但我不是第
我正在开发一个自动化项目,我试图单击网站上的按钮。我已设法识别该元素,但当我尝试使用 document.createEvent 时,它告诉我该对象不支持它。有什么想法吗? function categ
我正在尝试在 Web 应用程序中模拟按键,它适用于嵌入式系统,但它使用 Webkit 派生浏览器。我在 Chrome 中测试了代码并得到了同样的错误。 我尝试使用来自 Yahoo 的示例中的代码片段,
我有一个场景,我有一些文本,应该是用户可选择的。问题是,它上面有一个 UI 覆盖层,默认情况下会阻止选择文本。保留叠加层并仍然能够选择文本的合乎逻辑的方法是使用合成事件(使用 document.cre
以下代码失败(在 javascript 控制台中,以及通过浏览器扩展注入(inject)脚本时) document.createEvent('TestEvent') Firebug 吐出: [Exce
这个问题在这里已经有了答案: Not able to create event on Calendar with this script (2 个答案) 关闭 7 个月前。 我一直在编写代码,以便在
我有来自 here 的以下脚本: function download(filename, text) { var pom = document.createElement('a');
我正在使用找到的自定义输入事件@ http://whattheheadsaid.com/projects/input-special-event. . 问题是我无法获取该事件的 key 代码。有什么想
我有一个 process-1 尝试使用以下方式打开事件: LPCWSTR a = L"ShellReadyEvent"; HANDLE hEvent = OpenEvent ( EVENT_ALL_A
我在检查某人的代码时看到了这个: template class ConcurrentQueue { private: HANDLE dataPushEvent;
我很好奇在 Quake 中使用 CreateEvent() 函数。 我们在 WinMain() 定义的 c 文件中有以下全局变量: static HANDLE tevent; 在 WinMain()
如果我使用 CreateEvent 打开一个事件: responseWaitEvent = CreateEvent(NULL, // no security TRUE,
本文整理了Java中facebook4j.internal.json.z_F4JInternalFactory.createEvent()方法的一些代码示例,展示了z_F4JInternalFacto
这个问题已经有答案了: How to merge date and time as a datetime in Google Apps Spreadsheet script? (1 个回答) 已关闭
我们正在尝试使用 Google 表单创建一个在线表单来接受预约请求。这个过程应该是这样的: 用户填写表格并提交他们的信息(有效) 一封电子邮件被发送到我们的 Gmail 以通知我们有新的传入请求(这有
我正在编写一个 ant-cheat Win32 加载程序,我需要在其中创建一个事件,等待它收到我存储它的另一个进程的信号 - 但它因 ERROR_INVALID_HANDLE 而失败。我正在创建一个未
如果我在 Visual Studio 2005 中编译以下函数,我会遇到几个编译错误: void search() { deviceEventHandle = CreateEvent(NULL
我的 Windows 服务使用 CreateEvent 创建了 2 个事件,用于与用户应用程序通信。该服务和用户应用程序未在同一用户帐户下运行。用户应用程序打开事件并将其设置为无错误地发出信号。但是该
我试图模拟被拒绝的值并得到这个错误。奇怪的是,这种构造在“成功”的情况下有效addUser.mockImplementation(value => jest.fn().mockResolvedValu
我正在寻找 Mac OS X 上最简单或最合适的方法来简单地“发出信号”或通知一个进程。来自 Windows 背景,这可以使用类似以下的方法来实现。 进程A: // create named even
我是一名优秀的程序员,十分优秀!