javascript - Override Chrome keyboard shortcuts in a user script - Stack Overflow

I wrote a user script that performs a certain operation on selected text in a textarea when pressing CT

I wrote a user script that performs a certain operation on selected text in a textarea when pressing CTRL+SHIFT+B.

This is done by registering a keypress event for the textarea and then checking the pressed key. To prevent the browser from handling the key bination I'm using the preventDefault() method which works fine in Firefox (the Library window is not opened but my code is executed instead).

However, in Chrome that key bination opens the bookmarks bar and the keypress event is not even triggered.

I wonder if there's a way to create such a shortcut in Chrome. It needs to work with a userscript - a real extension is not an option since I'd prefer not to maintain two different "versions" for Firefox and Chrome.

I wrote a user script that performs a certain operation on selected text in a textarea when pressing CTRL+SHIFT+B.

This is done by registering a keypress event for the textarea and then checking the pressed key. To prevent the browser from handling the key bination I'm using the preventDefault() method which works fine in Firefox (the Library window is not opened but my code is executed instead).

However, in Chrome that key bination opens the bookmarks bar and the keypress event is not even triggered.

I wonder if there's a way to create such a shortcut in Chrome. It needs to work with a userscript - a real extension is not an option since I'd prefer not to maintain two different "versions" for Firefox and Chrome.

Share Improve this question edited May 19, 2021 at 12:35 Brian Tompsett - 汤莱恩 5,89372 gold badges61 silver badges133 bronze badges asked Jun 24, 2012 at 21:29 ThiefMasterThiefMaster 319k85 gold badges607 silver badges646 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 7

Apparently, the Chrome UI triggers off of keydown instead of keypress (This Quirksmode article may suggest why -- keypress is supposed to fire when an actual character is being inserted).

So changing the appropriate line to:

$(document).on('keydown', '.wmd-input', function(e) {

Seems to work on both FF and Chrome.

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744968642a4603834.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信