2010-10-10 155 views
4

在Firefox和Chrome中的Mac OS/X上,鍵入時鼠標光標會消失。無論如何,在javascript中防止這種行爲或強制光標再次變爲可見?如何在打字時在瀏覽器中顯示鼠標光標?

我使用jQuery的鍵盤處理:

// keyboard handlers 
    $(document).keydown(this.keydown); 
    $(document).keyup(this.keyup); 

...

keydown: function(evt) { 
    var app = PGE_LIB.game(); 
    switch(evt.which) { 
    case 'G'.charCodeAt(0): 
    app.activateGrabTool(); 
    break; 
    case 'S'.charCodeAt(0): 
    $('#toolbar img').removeClass('activeTool'); 
    $('#scaleTool').addClass('activeTool'); 
    break; 
    case app.ESC_KEY: 
    app.deactivateTool(); 
    break; 
    case app.SHIFT_KEY: 
    app._shiftKeyDown = true; break; 
    default: 
    break; 
    } 
}, 
+0

貴國是否能表現出一些代碼如何:重新遞目前這些鍵盤輸入的事件?你是否阻止了默認操作? – 2010-10-10 01:26:08

+0

我不確定您的意思是防止默認操作。 – 2010-10-10 01:35:57

+0

值得注意的是,至少在Safari 5中,默認行爲是讓遊標在擊鍵後保持可見狀態*除非*文本字段爲焦點。我不知道原因是什麼,但一些事件處理程序似乎覆蓋了這種行爲(所以您遇到的行爲可以重現,例如Gmail沒有關注文本字段,但不是堆棧溢出)。 – eyelidlessness 2010-10-10 02:00:52

回答

4

如果您使用自定義遊標,當您的按鍵事件觸發時,您可以檢測到光標位置並在其位置顯示圖像,直到下一個mousemove。在這種情況下,您還應該隱藏未處理的按鍵事件的圖像。如果您沒有使用自定義遊標,請注意您可能會向某些用戶展示標準遊標版本,而不是其操作系統或瀏覽器或用戶安裝的遊標集顯示。

+0

我現在在我的應用中使用自定義遊標,這種方法完全解決了這個問題。 – 2010-10-10 14:00:29

5

這是預期在這些瀏覽器的行爲。行爲用戶預計。幸運的是,沒有辦法禁用它。個人而言,我發現很多關於OS X的UI決定令人憤慨,但由於它是OS X的標準行爲,所以改變這一點肯定會違背用戶的期望。

編輯

我沒有在時刻提供給我一個蘋果,這樣我就可以:t檢驗這一點,但看到http://api.jquery.com/event.preventDefault/

可以使用event.preventDefault()改變的默認行爲一些元素。它並不總是有效,並且消失的鼠標光標問題是OS範圍的行爲,而不是瀏覽器特定的。

+5

那麼,我很欣賞明確的答案,除了「謝天謝地」的部分。我正在開發一個圖形設計的Web應用程序,它使用鍵盤輸入在工具之間切換。所以我需要將鼠標光標從「指針」改爲「移動」或「調整大小」。目前,光標在更換工具時會消失,這是不可接受的。目前Web瀏覽器的功能可以輕鬆開發各種酷炫的應用程序,除了這樣的荒謬限制之外。 – 2010-10-10 01:10:28

+0

@William,對此術語的使用表示歉意。也許另一個可能是微妙的。我的觀點是,瀏覽器製造商實際上已經更好地鎖定了這些東西。那是我所感激的。您所描述的確聽起來像是一個有趣且有用的應用程序。問題不在於「當我鍵入」時,而是如何捕獲鍵盤輸入並防止默認操作? – 2010-10-10 01:24:57

+0

問題是我有一些可能想要移動或調整大小的對象,以及一個用戶界面約定,您可以在其中按'g'或's'鍵以「抓取」或「縮放」(就像Blender一樣) )。目前,當我點擊其中一個鍵時,鼠標光標消失,用戶必須移動鼠標才能顯示光標。這在Mac應用程序(例如Gimp)中不會發生,因此大概在低級別的方法中可以防止在Mac上輸入時隱藏光標。但顯然不在瀏覽器中。 – 2010-10-10 01:50:00

0

很抱歉,您無法通過瀏覽器禁用此內置操作系統功能。

screenshot

+1

我瘋了還是這在Windows中完全不起作用?我不得不使用Windows進行較長時間的短期工作,它從未成功運行。 – eyelidlessness 2010-10-11 05:51:07

+0

@eye:雖然使用自定義光標和文本框的幾個程序(如遊戲)不起作用,但它始終適用於我。我使用Windows 7,有時使用Windows XP。 – Kranu 2010-10-11 23:22:21

相關問題