2011-05-21 56 views
7

我正在開發一個Chrome瀏覽器擴展,允許一拖&下降樣的操作無處不在頁面上。但是,在用戶執行此操作時,通常將光標更改爲文本光標。Javascript:如何在網站上進行拖放操作時設置光標?

我怎樣才能改變這種行爲? CSS遊標屬性似乎只在沒有按住鼠標按鈕時纔會啓動。

PS:因爲,我開發了谷歌瀏覽器的擴展,其他瀏覽器並不重要我。

+0

你必須提供有關你的詳細信息你在做什麼,你是如何做的。根據我的經驗,無論鼠標按鈕狀態如何,CSS遊標屬性都看起來完全一樣。 – Sparky 2011-05-21 03:10:49

+1

@Sparky:至少在Chrome中,當你按住鼠標主按鍵和「拖」,光標變成了「工字鋼」。我認爲@eWolf想要重寫這個約定。 – Jeremy 2011-05-21 03:19:00

+1

@Jeremy這就是問題所在。 – eWolf 2011-05-21 04:44:54

回答

2

您可以加入一個css類body標籤中,設定光標,然後比降類中刪除?

+0

危險。如果拖放操作不能按預期進行(窗口外部,錯誤或其他),則光標將停留在那裏。 – 2017-06-12 13:52:10

3

只需覆蓋「的dragstart」消息處理程序,以及在「選擇開始」 ... 雖然在功能取消事件......

<script type="text/ecmascript> 
window.addEventListener("dragstart", function(fEventObject){ CancelEvent(fEventObject); }); 
window.addEventListener("selectstart", function(fEventObject){ CancelEvent(fEventObject); }); 

function CancelEvent(fEventObject) 
{ 
    if (fEventObject.preventDefault) fEventObject.preventDefault(); 
    if (fEventObject.cancel != null) fEventObject.cancel = true; 
} 

</script> 
+1

有趣的答案!你知道是否也可以在事件啓動後取消事件?我想在頁面上保持拖放和選擇不變,直到我的擴展程序被激活,這是通過按住鼠標半秒而不移動而發生的。 – eWolf 2011-09-13 13:59:08

相關問題