Проверяю, установлено ли у пользователя определенное расширение

Я только что обнаружил, что расширение Screen Capture by Google не запускает событие window.onresize на моем веб-сайте.

Я хочу выполнить проверку javascript, чтобы узнать, установлен ли у пользователя ScreenCapture, и, если да, предупредить пользователя о проблеме.

Год назад, кажется, я слышал о каком-то коде javascript, который мог бы это сделать, возможно, используя какой-то Google API, но я не помню.

Есть какие-нибудь сведения по этому поводу? Я не разрабатывал никаких расширений, поэтому не знаю, как они работают.

[EDIT] Итак, меня попросили показать код. Как видно из моего предыдущего вопроса ( window.onresize не запускается в Chrome, но запускается в Chrome Incognito ), проблема возникает в любой функции события window.onresize, поэтому я не думаю, что мой код действительно имеет значение.

Кроме того, у меня довольно много кода, я не знаю, сколько его нужно вставить и будет ли он полезен.

        var debounce = function (func, threshold, execAsap) 
    {
        var timeout;

        return function debounced () {//alert("1.1 Y U NO WORK?");
            var obj = this, args = arguments;
            function delayed () {
                if (!execAsap)
                    func.apply(obj, args);
                timeout = null; 
            }

            if (timeout)
                clearTimeout(timeout);
            else if (execAsap)
                func.apply(obj, args);

            timeout = setTimeout(delayed, threshold || 100); 
        };
    };


    window.onresize = debounce(function (e) { //alert("1.2 Y U NO WORK?");
        flag = true;
        var point = window.center({width:1,height:1});
        doCenter(point);
        // does something here, but only once after mouse cursor stops 
    }, 100, false);

Я хотел бы подчеркнуть, что проблема не в дебаунде. window.onresize = t; function t (e) {alert ("wtf?");} тоже не будет работать.

[EDIT2]

Вот результат:

    var screenCapture = null;
    var screenCaptureImg = document.createElement("img");
     screenCaptureImg.setAttribute("src", "chrome-extension://cpngackimfmofbokmjmljamhdncknpmg/images/arrow.png");
    /*
     * Add event listeners for both "load"- and "error"-event
     * Set the variable showing the existence of the extension by
     * setting it to "true" or "false" according to the fired event
     */
    screenCaptureImg.addEventListener("load", doLoad, false);
    function doLoad(e){
        screenCapture = true; //removeImgTag(e);

        alert("I've so cleverly detected that your Chrome has the ScreenCapture extension enabled. \n\nThis extension interferes with my website's DOM and long story short, it won't be able to scale properly.\n\nSo please disable it. \nConsider this extension: \"Disable All Extensions Plus\", it's a handy selective disabler.");
    }

    screenCaptureImg.addEventListener("error", function(e){
        screenCapture = false; //removeImgTag(e);
    }, false);
    /*
    function removeImgTag(e) {
        e.currentTarget.parentNode.removeChild(e.currentTarget);
    }
    */

Обратите внимание, что мне не удалось заставить removeImgTag работать, потому что (по крайней мере в хроме), похоже, у меня нет доступа к объекту document для создания или удаления элементов с моей страницы из этих функций событий. Вот почему я показываю предупреждение вместо того, чтобы элегантно писать document.getElementById ("что-то"). InnerHTML = ...

9
задан Community 23 May 2017 в 12:08
поделиться