2013-09-26 33 views
1

我有一个使用SproutCore构建的应用程序,最近有几个Windows 7用户报告说mouseclicks(按钮,单选按钮等)不起作用完全可以在最新的Chrome或Firefox浏览器上使用。某些Windows 7计算机上的官方SproutCore演示网站上的鼠标点击不起作用

尝试了几台Windows 7电脑后,我终于找到了一个复制问题。不仅如此,我发现问题在官方SproutCore演示站点http://showcase.sproutcore.comhttp://demo.sproutcore.com上可见。后者运行旧版本的SC,前者运行SproutCore 1.10.0。

在演示网站上,没有一个需要鼠标点击的控件。主演示选择器使用滚轮滚动,但不能选择任何内容。在http://demo.sproutcore.com/sample_controls/选项卡不能被点击。在http://showcase.sproutcore.com/#ui/SC.ButtonView按钮不响应,等等,等等。

这是可复制在我的电脑和我的两个用户的计算机,同时使用Chrome和Firefox,但IE 10和Opera的工作。其中一台电脑运行的是Windows 7 Ultimate SP 1,另外两台运行的是Windows 7 Professional SP 1.我测试过的大多数其他Windows 7盒子,然而,不是显示该bug,所以我意识到这将是非常难以调试。

在我的应用程序,如果我得到一个按钮视图的引用和运行

SC.run(function() { 
    view.triggerAction("mousedown"); 
}); 

该按钮并点击。所以不知何故,点击不会正确触发该事件。

有没有其他人经历过这个和/或知道解决方案?


编辑:在使用SproutCore的其他网站环顾四周,我发现,在http://www.bong.tv/顶部的SC按钮不起作用,但演示现场http://tasks.sproutcore.com/tasks确实工作。我还没有弄清楚任务按钮有什么不同(也不知道它使用哪个版本的SC)。

+0

SC.platform.touch在受影响的机器上的价值是什么? – Dave

+0

而且我假设显然不是,但是你有没有什么可能意味着Windows 8而不是7?你所描述的问题是Win8的一个已知问题。 – Dave

+0

@Dave:伟大的预感:“SC.platform.touch”在受影响的机器上返回“真”。在不受影响的机器上,它返回'false'。所以SproutCore认为这些Windows 7电脑是触摸设备。 (是的,Windows 7,而不是8.) –

回答

1

好吧,听起来我们可以将此推广到官方答案。这是SproutCore中的已知错误(请参阅here)。问题在于SC的触摸和点击行为的长期分离以及当前检测到的所有实际触摸的不可靠性(与检测API的存在相反)的组合。我们正在研究解决方案。与此同时,最好的解决方法似乎是检测SC.browser.os ===“windows”和SC.browser.osVersion的“6.2”(win8)或“6.1”(win7) ,并在项目的core.js顶部手动设置SC.platform.touch = NO。这将为您的Win8用户解决Win8问题,但我相信会为您的Win8平板电脑用户打破这些问题。

再说一次,绝对不是最优的,我们将试着为1.10.1版本修正或修改。

+0

谢谢。这工作,但我会提醒未来的读者这个线程来检查你的答案更新链接的问题。 –

+0

该问题实际上是在1.10.0中修复的 – unicoletti

相关问题