Przekazanie mouse move do innej karty chrome

Odpowiedz Nowy wątek
2018-10-30 11:18
0

Cześć, załóżmy, że mam taki prosty kod:

chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
    if (changeInfo.status === 'complete') {
        var host = tab.url;
        var reg = new RegExp("test", "gi");
        if(reg.test(host)) {
            chrome.tabs.executeScript(
                tabId,{
                    code:"$(window).on('mousemove', function(e) {var posX = e.pageX;var posY = e.pageY;console.log(posX);console.log(posY);});"
                },
                function(results) {
            });
        }
    }
});

Dzięki temu po załadowaniu strony i wykonywaniu eventu moousemove w konsoli wyświetlane są aktualne pozycje kursora.
Chciałbym teraz zrobić tak, by wywoływanie tego mousemove w tej karcie "przekazywane" było do innej karty, tzn. by wraz z tym, gdy na aktualnej karcie wykonuje mousemove to w innej karcie to mousemove także jest przechwytywane i też w konsoli wyświetlane są pozycje kursora, dokładnie te same. Prosiłbym o jakieś wskazówki na jakie funkcje, metody czy jakieś słowa kluczowe zwrócić uwagę, by takie coś wykonać.

Pozostało 580 znaków

2018-10-30 11:40
0

z tego co wiem to nie ma takiej możliwości


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.

Pozostało 580 znaków

2018-10-30 13:34

Można to zrobić w Chromie i pewnie firefoxie (IE oczywiście nie wspiera) za pomocą BroadcastChannel API.
W jednej karcie:

    const channel = new BroadcastChannel('send-mouse-position');

    document.addEventListener('mousemove', e => {
        channel.postMessage({ x: e.x, y: e.y });
    });

a w drugiej karcie:

    const channel = new BroadcastChannel('send-mouse-position');
    channel.onmessage = e => {
        console.log(e.data);
    };

https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel

edytowany 1x, ostatnio: OverMorda, 2018-10-30 13:37

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0