有沒有人知道如何處理Safari Web瀏覽器的行爲,當用戶按下退格鍵時,將當前頁面設置爲上一頁?我目前在Mac OSX Lion 10.7.2和Silverlight應用程序中遇到此問題,只要我們的用戶試圖使用退格/刪除鍵來更正字段。Safari Mac OSX Backspace問題
回答
我以前也有過這個問題。我花了好一週左右試圖拿出一個解決方案,並最終最好的辦法來解決這個問題(我從來沒有發現一個「修復」可以這麼說)是以下幾點:
暫停所有退格鍵關閉使用JavaScript的事件。不允許任何退格事件到達Silverlight容器。這將意味着Silverlight再也不會將您帶到上一頁,但您也將無法刪除文本字段中的任何文本!第2點解釋瞭如何解決這個問題。
將一個
KeyUp
事件處理程序附加到您的Silverlight控件的RootVisual
。KeyEventArgs
'原始來源是一個TextField,並且該鍵本身是Key.Back
,那麼我們必須手動刪除文本框內的一些文本。我們通過查看TextBox的SelectionStart
和SelectionLength
屬性來做到這一點。SelectionStart
爲您提供了要刪除的位置,並且SelectionLength
會提供您想要刪除的字符數。最後,你需要確定光標應該在哪裏的正確位置。這應該等於SelectionStart
財產的價值。
這種方法存在缺陷。因爲我們必須手動收聽KeyUp
事件,所以只有在退格鍵被釋放後纔會觸發事件。這意味着如果您使用Safari並按住向下空格鍵,則只會刪除一個字符。您需要釋放退格鍵並再次按下才能刪除另一個字符。在我看來,這是一個小的代價,但考慮到替代方案是查看上一頁或者根本不處理退格!
值得注意的是,所有這些都可以是Mac/Safari特定的。您可以使用HtmlPage.BrowserInformation.UserAgent
來查找瀏覽器類型,如果瀏覽器是Safari,則只能附加RootVisual_KeyUp
處理程序。如果您只在Safari中暫停JavaScript中的退格事件,則這隻會在Mac/Safari中發揮作用,並保留每個其他瀏覽器的默認功能。
祝你好運!希望這可以幫助!
- 1. OSX和Safari問題
- 2. Mac Safari Textarea問題
- 3. Mac OSX - Xcode /泄漏問題
- 4. mysql安裝問題 - mac osx
- 5. Curses Library Backspace問題
- 6. 在mac OSX上訪問psql的問題
- 7. 在Mac OSX上eclipse中的filenotfound問題
- 8. 問題檢測PythonMagick後安裝Mac OSX
- 9. mac osx雪豹pyqt安裝問題
- 10. 在Mac OSX上安裝ntlk的問題
- 11. Mac OSX全屏應用程序問題
- 12. Mac OSX和Unix快速問題
- 13. 在Mac OSX上安裝CakePHP:apache問題
- 14. 問題在Mac上啓動MySQL時,OSX
- 15. wxPython在Mac OSX Lion上的wx.TextCtrl問題?
- 16. Safari中的jQuery/JavaScript問題PC/Mac
- 17. Mac safari奇怪的符號問題
- 18. JavaScript submit();問題在IE/Safari/FF爲Mac
- 19. Safari瀏覽器導航中的CSS問題osX
- 20. 的CSS瀏覽器窗口的Safari和Mac的Safari問題
- 21. Java Swing Mac OSX標題欄
- 22. OSX文件訪問問題
- 23. mac safari vs iphone safari
- 24. Facebook Safari OSX Youtube wmode bug
- 25. OSx php7.1問題
- 26. 無法在Safari中啓用Mac OSX Lion位置服務
- 27. Backspace Button的JavaScript函數問題
- 28. glGenVertexArrays Mac OSX PyOpenGL
- 29. 在Mac OSX
- 30. 在Mac OSX上
爲什麼有人投我的答案?這是一個完全可行的解決方案,我一直在使用,而現在沒有任何投訴。我概述了它爲什麼不是一個完美的解決方案,但是我非常懷疑當Safari/Silverlight存在這個bug時,你將能夠找到一個。 – 2012-04-13 07:43:52