Safari Mac OSX 退格键问题
Safari Mac OSX Backspace Issues
有没有人知道如何处理Safari Web浏览器的行为,每当用户按下退格键时,将当前页面设置为上一页?我目前在Mac OSX Lion 10.7.2和silverlight应用程序上遇到此问题,每当我们的用户尝试使用退格键/删除键更正字段时。
我过去也遇到过这个问题。我花了一周左右的时间试图提出一个解决方案,最终解决此问题的最佳方法(可以这么说,我从未找到"修复")如下:
-
使用 Javascript 暂停所有退格键关闭事件。不允许任何退格键事件到达 Silverlight 容器。这意味着 Silverlight 永远不会再将您带到上一页,但您也无法删除文本字段中的任何文本!第 2 点解释了如何解决此问题。
-
将
KeyUp
事件处理程序附加到 Silverlight 控件的RootVisual
。KeyEventArgs
' 原始源是一个 TextField 并且键本身是Key.Back
的,那么我们必须手动删除文本框中的一些文本。我们通过查看文本框的SelectionStart
和SelectionLength
属性来执行此操作。SelectionStart
为您提供要从中删除的位置,SelectionLength
提供要删除的字符数。最后,您需要找出光标现在应该在的正确位置。这应该刚好等于SelectionStart
属性的值。
这种方法存在缺陷。因为我们必须手动监听KeyUp
事件,所以只有在释放退格键时才会触发Key.Back
KeyUp
事件。这意味着,如果您使用的是 Safari 并按住退格键,则只会删除一个字符。您需要释放退格键并再次按下它以删除另一个字符。在我看来,这是一个很小的代价,考虑到替代方案是查看上一页或根本不处理退格!
值得注意的是,所有这些都可以是特定于Mac/Safari的。您可以使用HtmlPage.BrowserInformation.UserAgent
查找浏览器类型,并且仅在浏览器是 Safari 浏览器时才附加RootVisual_KeyUp
处理程序。如果你只在 Safari 的 javascript 中挂起退格键事件,这只会在 Mac/Safari 中产生影响,并保留其他浏览器的默认功能。
祝你好运!希望这有帮助!
- 在指令控制器中使用$attrs时出现问题
- 将PHP变量传递给jQuery时遇到问题
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 参数变量出现ngTable指令问题
- 剑道网格jQuery动画()问题
- 我的jQuery插件参数没有正确启动,遇到了问题
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- TableExport jquery插件:文件名和扩展名问题
- JavaScript Pub/Sub属性访问问题
- JavaScript异步问题
- Safari(Mac OS)上的jQuery平滑滚动问题
- 在Mac OSX上运行MongoDB时出现问题
- 与其他浏览器相比,如何在 safari 或 mac 中解决字体粗细、文本过于粗体的问题
- Safari Mac OSX 退格键问题
- 跨浏览器粘贴捕获- Mac Opera问题
- MAC魔术鼠标水平滑动/滚动firefox 6的问题
- Cocos2d-x JS 3.7.1触摸事件MAC问题
- 选择选项字体系列在MAC os(chrome和safari浏览器问题)和windows safari浏览器问题中不工作
- Angularjs在一些mac机器浏览器上的CORS问题
- 问题运行样本在Mac Pro X86_64 V8引擎