IE9 JavaScript error: SCRIPT5007: Unable to get value of the property 'ui': object is NULL or undefined

Moja strona działa dobrze na Chrome, Firefox i Internet Explorer 8. Ale w Internet Explorer 9, bardzo dziwne błędy są wyzwalane, gdy tylko kursor nad komponentami.

SCRIPT5007: nie można pobrać wartości właściwości 'ui': obiekt jest null lub undefined ScriptResource.axd?d=sTHNYcjtEdStW2Igkk0K4NaRiBDytPljgmcypqxv5nez1ietx3drhufmftemwoh2l3771sigglr2bqloxaiwxveveperldcl0hfhhufdtom0o55k0&t=ffffffffd37cb3a1, linia 181 znak 1914

Oraz po linku do błędu w javascript pokazuje mi te bity kodu:

onNodeOver:function(B,A){A.ui.onOver(B)},onNodeOut:function(B,A){A.ui.onOut(B)}
Nie wiem, jak rozwiązać ten błąd. Widziałem to rozwiązanie, ale to nie rozwiązało problemu dla mnie. Jakieś Pomysły?
Author: Carsten, 2011-04-26

8 answers

Wiele bibliotek JavaScript (zwłaszcza tych nie ostatnich) nie radzi sobie dobrze z IE9, ponieważ zrywa z IE8 w obsłudze wielu rzeczy.

Kod JS, który węszy dla IE, będzie dość często zawodził w IE9, chyba że taki kod zostanie przepisany specjalnie do obsługi IE9.

Zanim kod JS zostanie zaktualizowany, powinieneś użyć meta tagu" X-UA-Compatible", aby zmusić swoją stronę do trybu IE8.

EDIT: nie mogę w to uwierzyć, 3 lata później i jesteśmy na IE11, a tam nadal są głosy za. :- ) Wiele bibliotek JS powinno teraz przynajmniej wspierać natywnie IE9, a większość obsługuje IE10, więc jest mało prawdopodobne, że będziesz potrzebował meta tagu w dzisiejszych czasach, chyba że nie zamierzasz uaktualnić swojej biblioteki JS. Ale uważaj, że IE10 zmienia rzeczy dotyczące skryptów między domenami i niektórych łamań kodu bibliotek opartych na CDN. Sprawdź wersję biblioteki. Na przykład Dojo 1.9 NA CDN zepsuje się na IE10, ale 1.9.1 rozwiązuje to.

EDIT 2: You REALLY musisz się pozbierać. Jesteśmy w połowie 2014 roku!!! I am STILL getting up-głosy za tym! Zrewiduj swoje witryny, aby pozbyć się starych, mocno zakodowanych zależności!

Westchnienie.. Gdybym wiedział, że będzie to zdecydowanie moja najpopularniejsza odpowiedź, prawdopodobnie spędziłbym więcej czasu na jej polerowaniu...

EDIT 3: jest już prawie rok 2016. / Align = "left" / .. Domyślam się, że istnieje wiele kodu dziedziczenia... Pewnego dnia nasze programy się skończą-na żywo my...

 149
Author: Stephen Chung,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-04-20 11:05:41

Miałem ten sam problem w IE9. Zastosowałem się do powyższej odpowiedzi i dodałem linijkę:

<meta http-equiv="X-UA-Compatible" content="IE=8;FF=3;OtherUA=4" />

W moim <head> i zadziałało.

 14
Author: savan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-27 20:54:21

Napisałem kod, który wącha IE4 lub wyższy i obecnie działa doskonale w witrynach dla klientów mojej firmy, a także moich własnych witryn osobistych.

Dołącz następujące wyliczone stałe i zmienne funkcji do pliku dołączającego javascript na swojej stronie...

//methods
var BrowserTypes = {
    Unknown: 0,
    FireFox: 1,
    Chrome: 2,
    Safari: 3,
    IE: 4,
    IE7: 5,
    IE8: 6,
    IE9: 7,
    IE10: 8,
    IE11: 8,
    IE12: 8
};

var Browser = function () {
    try {
        //declares
        var type;
        var version;
        var sVersion;

        //process
        switch (navigator.appName.toLowerCase()) {
            case "microsoft internet explorer":
                type = BrowserTypes.IE;
                sVersion = navigator.appVersion.substring(navigator.appVersion.indexOf('MSIE') + 5, navigator.appVersion.length);
                version = parseFloat(sVersion.split(";")[0]);
                switch (parseInt(version)) {
                    case 7:
                        type = BrowserTypes.IE7;
                        break;
                    case 8:
                        type = BrowserTypes.IE8;
                        break;
                    case 9:
                        type = BrowserTypes.IE9;
                        break;
                    case 10:
                        type = BrowserTypes.IE10;
                        break;
                    case 11:
                        type = BrowserTypes.IE11;
                        break;
                    case 12:
                        type = BrowserTypes.IE12;
                        break;
                }
                break;
            case "netscape":
                if (navigator.userAgent.toLowerCase().indexOf("chrome") > -1) { type = BrowserTypes.Chrome; }
                else { if (navigator.userAgent.toLowerCase().indexOf("firefox") > -1) { type = BrowserTypes.FireFox } };
                break;
            default:
                type = BrowserTypes.Unknown;
                break;
        }

        //returns
        return type;
    } catch (ex) {
    }
};

Wtedy wystarczy użyć dowolnej funkcji warunkowej, takiej jak...

Ie. value = (Browser() >= BrowserTypes.IE) ? node.text : node.textContent;

Lub WindowWidth = (((Browser() >= BrowserTypes.IE9) || (Browser() < BrowserTypes.IE)) ? window.innerWidth : document.documentElement.clientWidth);

Lub sJSON = (Browser() >= BrowserTypes.IE) ? xmlElement.text : xmlElement.textContent;

Rozumiesz? Mam nadzieję, że to pomoże.

Oh, warto pamiętać o sprawdzeniu funkcji Browser () po wydaniu IE10, tylko po to, aby sprawdzić, czy nie zmieniła ona reguł.

 5
Author: Justin Russo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-19 04:11:59

To działało u mnie w IE 11:

<meta http-equiv="x-ua-compatible" content="IE=edge; charset=UTF-8">
 2
Author: fender,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-18 11:35:56

Sprawdź, czy na końcu jest przecinek.

                            },
                            {
                                name: 'МОФ. Перелив из баков. м3/ч',
                                data: graph_high3,
                                dataGrouping: {
                                    units: groupingUnits,
                                    groupPixelWidth: 40,
                                    approximation: "average",
                                    enabled: true,
                                    units: [[
                                            'minute',
                                            [1]
                                        ]]
                                }
                            }   // if , - SCRIPT5007
 1
Author: des1roer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-17 08:03:44

Możesz również uzyskać ten błąd, jeśli przeglądasz dostęp do strony lokalnie (przez file:// zamiast http://)..

Jest trochę dyskusji na ten temat tutaj: https://github.com/jeromegn/Backbone.localStorage/issues/55

 0
Author: Rosdi Kasim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-30 07:19:32

Cóż, powinieneś również spróbować dodać kod Javascript do funkcji, a następnie wywołać funkcję po treści dokumentu loaded..it u mnie działa:)

 -1
Author: Fazi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-01 08:27:38

Miałem też do czynienia z tym samym problemem.

Używałem poniższego kodu wstrona aspx bez zapisywania konfiguracji uwierzytelniania w sieci.plik konfiguracyjny. Po zapisaniu ustawień w Web.config, jestem w stanie uruchomić mój kod.

<% If Request.IsAuthenticated Then%>
     <table></table>
<%end if%> 
 -3
Author: Mazhar Khan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-28 11:35:27