Объект не поддерживает это свойство или метод.Зачем? - PullRequest
1 голос
/ 25 марта 2012

Если я запускаю этот код на IE8 или ниже, я получаю эту ошибку: Object doesn't support this property or method

var hasFlash = ((typeof navigator.plugins != "undefined" && typeof navigator.plugins["Shockwave Flash"] == "object") || (window.ActiveXObject && (new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) != false));

1 Ответ

2 голосов
/ 25 марта 2012

Возможно, часть new ActiveXObject не работает, потому что ActiveXObject - это (в ваших текущих настройках) не то, к чему может быть применен оператор new, или «ShockwaveFlash.ShockwaveFlash» не является допустимым входом и следовательно, исключение выдается.

Однако вы можете легко переписать свой код для решения этой проблемы:

var hasFlash = (function() {
    if (typeof navigator.plugins != "undefined" && typeof navigator.plugins["Shockwave Flash"] == "object") {
        return true;
    } else if (typeof window.ActiveXObject != "undefined") {
        try {
            new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
            return true;
        } catch (e) { }
    }

    return false;
})();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...