์ด๊ฒ์ ์๋นํ ์์๊ฐ ์ ์ ๊ธฐ๋ฅ์ธ ๊ฒ ๊ฐ์ผ๋ฏ๋ก ๊ณง ์ถ์๋ ๋ฒ์ ์์ ๋ณผ ์ ์์ ๊ฒ์ผ๋ก ๊ธฐ๋ํ์ง ์์ต๋๋ค.
_์๋ https://github.com/philc/vimium/issues/874#issuecomment -63235870์ @ mrmr1993์ด ๊ฒ์ํ์ต๋๋ค.
์๋ ํ์ธ์ ์์ ๋ช ๋ น์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น? vimium์์ ๋งํฌ๋ฅผ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ผ๋ก ํด๋ฆญํ๊ณ ์ถ์ต๋๋ค. ๊ฐ์ฌ ํด์!
๋๋ ๊ฑฐ์ 1๋ ๋์ Vimium์์ ์ผํ์ง ์์์ง๋ง ์ด๊ฒ์ด ๋๋ฅผ ํฅํ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ ๊ฒ์ ๋๋ค...
Chrome์ ์ปจํ
์คํธ ๋ฉ๋ด๋ฅผ ํ์ํ๋ ค๋ฉด ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก๋ ๋ถ๊ฐ๋ฅํ๋ค๊ณ ํ์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ํด๋น ๋ถ๊ธฐ ๋ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ ํด๋ฆญ ๋๋ contextmenu
์ด๋ฒคํธ์ ๋ํด click
/ mousedown
/ mouseup
์ด๋ฒคํธ๋ฅผ ๊ฐ๋ก์ฑ๋๋ก ์ค์ ๋ javascript ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค.
์ด๊ฒ์ด ์ํ๋ ๊ฒฝ์ฐ ae829c8cf8d2bc507653451d9ad940dc5e47d96f(ํด๋น ๋ถ๊ธฐ์ ์ปค๋ฐ) ๋ฐ ํ์ฌ ๋ง์คํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ดํด๋ณด๊ณ ๋ค์์ ์ํํ ์ ์์ด์ผ ํฉ๋๋ค.
background_scripts/commands.coffee
์ ๋ณ๊ฒฝ ์ฌํญ์ ์ง์ ์ ์ฉlib/dom_utils.coffee
์ถ๊ฐ๋ simulateContextMenuEvent
๋ณต์ฌsimulateClick
์ถ๊ฐํ๊ณ (ํด๋น ์ปค๋ฐ์์์ ๊ฐ์ด) simulateMouseEvent
์๋ ์ ๋ฌํฉ๋๋ค. ์ฌ๊ธฐ์ ๋ง์ง๋ง 0
๋งค๊ฐ๋ณ์๋ mouseEvent.initMouseEvent
๋์ฒด๋์ด์ผ ํฉ๋๋ค.button == 0
์ ๋ํ ์ํ๋ฅผ ์ถ๊ฐํ์ญ์์ค.content_scripts/link_hints.coffee
๋ค์์ ์ถ๊ฐํ์ญ์์ค. ๋ค๋ฅธ ์ ์ฌํ ๋ผ์ธ ๊ทผ์ฒ:RIGHT_CLICK =
name: "right-click"
indicator: "Right click"
linkActivator: (link) ->
DomUtils.simulateClick(link, {
altKey: false,
ctrlKey: false,
metaKey: false }, 2)
DomUtils.simulateContextMenuEvent link
content_scripts/link_hints.coffee
available_modes
์ RIGHT_CLICK
์ถ๊ฐactivateModeToTriggerRightClickAction (count) -> <strong i="37">@activateMode</strong> count, mode: RIGHT_CLICK
์ ๋ค๋ฅธ ์ ์ฌํ ๋ผ์ธ ๊ทผ์ฒ์ content_scripts/link_hints.coffee
๋๋ ์ด๊ฒ์ ๊ด์ฌํ๋ ๋ฐ ๊ด์ฌ์ด ์๊ธฐ ๋๋ฌธ์ ๋ ์ด์ ๋๋ตํ์ง ์๊ฒ ์ง๋ง ํ์ด์ ๋น๋๋ค!
+1 ์ด ๋ณ๊ฒฝ ์ฌํญ์ ๋ณด๊ณ ์ถ์ต๋๋ค. ์ ๋ ํนํ vimium์ ์ฌ์ฉํ์ฌ ํ์ํ ์ ์๋๋ก ์๋ง์ ์ฑ์ ์น ๋ฒ์ ์ ์ฌ์ฉํฉ๋๋ค. ์ฌํ๊ฒ๋ ์ผ๋ถ๋ ์์ ํ ์๋ํ๋ ค๋ฉด ์ค๋ฅธ์ชฝ ํด๋ฆญ์ด ํ์ํฉ๋๋ค(Spotify๋ฅผ ๋ณด๊ณ ์์).
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋๋ ๊ฑฐ์ 1๋ ๋์ Vimium์์ ์ผํ์ง ์์์ง๋ง ์ด๊ฒ์ด ๋๋ฅผ ํฅํ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ ๊ฒ์ ๋๋ค...
Chrome์ ์ปจํ ์คํธ ๋ฉ๋ด๋ฅผ ํ์ํ๋ ค๋ฉด ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก๋ ๋ถ๊ฐ๋ฅํ๋ค๊ณ ํ์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ํด๋น ๋ถ๊ธฐ ๋ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ ํด๋ฆญ ๋๋
contextmenu
์ด๋ฒคํธ์ ๋ํดclick
/mousedown
/mouseup
์ด๋ฒคํธ๋ฅผ ๊ฐ๋ก์ฑ๋๋ก ์ค์ ๋ javascript ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค.์ด๊ฒ์ด ์ํ๋ ๊ฒฝ์ฐ ae829c8cf8d2bc507653451d9ad940dc5e47d96f(ํด๋น ๋ถ๊ธฐ์ ์ปค๋ฐ) ๋ฐ ํ์ฌ ๋ง์คํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ดํด๋ณด๊ณ ๋ค์์ ์ํํ ์ ์์ด์ผ ํฉ๋๋ค.
background_scripts/commands.coffee
์ ๋ณ๊ฒฝ ์ฌํญ์ ์ง์ ์ ์ฉlib/dom_utils.coffee
์ถ๊ฐ๋simulateContextMenuEvent
๋ณต์ฌsimulateClick
์ถ๊ฐํ๊ณ (ํด๋น ์ปค๋ฐ์์์ ๊ฐ์ด)simulateMouseEvent
์๋ ์ ๋ฌํฉ๋๋ค. ์ฌ๊ธฐ์ ๋ง์ง๋ง0
๋งค๊ฐ๋ณ์๋mouseEvent.initMouseEvent
๋์ฒด๋์ด์ผ ํฉ๋๋ค.button == 0
์ ๋ํ ์ํ๋ฅผ ์ถ๊ฐํ์ญ์์ค.content_scripts/link_hints.coffee
๋ค์์ ์ถ๊ฐํ์ญ์์ค. ๋ค๋ฅธ ์ ์ฌํ ๋ผ์ธ ๊ทผ์ฒ:content_scripts/link_hints.coffee
available_modes
์RIGHT_CLICK
์ถ๊ฐactivateModeToTriggerRightClickAction (count) -> <strong i="37">@activateMode</strong> count, mode: RIGHT_CLICK
์ ๋ค๋ฅธ ์ ์ฌํ ๋ผ์ธ ๊ทผ์ฒ์content_scripts/link_hints.coffee
๋๋ ์ด๊ฒ์ ๊ด์ฌํ๋ ๋ฐ ๊ด์ฌ์ด ์๊ธฐ ๋๋ฌธ์ ๋ ์ด์ ๋๋ตํ์ง ์๊ฒ ์ง๋ง ํ์ด์ ๋น๋๋ค!