我有一个使用SproutCore构建的应用程序,最近有几个Windows 7用户报告说,鼠标点击(按钮,单选按钮等)在最新的Chrome或Firefox浏览器上都不起作用。
在尝试了几台Windows 7计算机之后,我终于找到了一个能够复制问题的计算机。不仅如此,我发现问题在官方SproutCore演示网站http://showcase.sproutcore.com和http://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机箱都是不显示错误,所以我意识到这将是非常难以调试的。
在我的应用上,如果我获得对按钮视图的引用并运行
SC.run(function() {
view.triggerAction("mousedown");
});
按钮确实单击。所以点击不会正确地触发该事件。
有没有其他人经历过这个和/或知道解决方案?
编辑:环顾其他使用SproutCore的网站,我发现http://www.bong.tv/顶部的SC按钮不起作用,但演示网站http://tasks.sproutcore.com/tasks 确实工作。我还没有弄清楚任务按钮的不同之处(也不是它使用的SC版本)。
答案 0 :(得分:1)
好吧,听起来我们可以将此推广到正式答案。这是SproutCore中的已知错误(请参阅here)。问题在于SC长期分离触摸和点击行为,以及所有实际触摸检测的当前总不可靠性(与检测到API的存在相反)。我们正在研究解决方案。与此同时,最好的(部分完全黑客攻击)解决方案似乎是检测到SC.browser.os ===“windows”和SC.browser.osVersion为“6.2”(win8)或“6.1”(win7) ,并在项目的core.js顶部手动设置SC.platform.touch = NO。这将解决Win7和Win的问题。 Win8-with-mouse用户,但我相信会为你的Win8-on-tablet用户打破它们。
同样,绝对不是最佳的,我们将尝试针对1.10.1版本进行修复或修改。