Open Link Under Mouse - Ctrl+Shift+Z

Mở liên kết tại vị trí con trỏ chuột hiện tại trong thẻ mới bằng Ctrl + Shift + Z

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         Open Link Under Mouse - Ctrl+Shift+Z
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Mở liên kết tại vị trí con trỏ chuột hiện tại trong thẻ mới bằng Ctrl + Shift + Z
// @author       Bạn
// @match        *://*/*
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    let currentElement = null;

    // Cập nhật phần tử dưới chuột
    document.addEventListener('mousemove', function (e) {
        currentElement = document.elementFromPoint(e.clientX, e.clientY);
    });

    // Lắng nghe tổ hợp phím Ctrl + Shift + Z
    document.addEventListener('keydown', function (e) {
        if (e.ctrlKey && e.shiftKey && e.code === 'KeyZ') {
            if (!currentElement) return;

            // Tìm phần tử là link gần nhất từ vị trí chuột
            let el = currentElement;
            while (el && el !== document.body) {
                if (el.tagName === 'A' && el.href) {
                    window.open(el.href, '_blank');
                    break;
                }
                el = el.parentElement;
            }
        }
    });
})();