1. JavaScript / Говнокод #18595

    −11

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    // Из Жуквери 1.9+:
    
    	// Support: IE<9
    	// Opera does not clone events (and typeof div.attachEvent === undefined).
    	// IE9-10 clones events bound via attachEvent, but they don't trigger with .click()
    	support.noCloneEvent = true;
    
    	if ( div.attachEvent ) {
    		div.attachEvent( "onclick", function() {
    			support.noCloneEvent = false;
    		});
    
    		div.cloneNode( true ).click();
    	}
    
    // Как было в Жуквери <=1.8:
    
    	if ( !div.addEventListener && div.attachEvent && div.fireEvent ) {
    		div.attachEvent( "onclick", function() {
    			// Cloning a node shouldn't copy over any
    			// bound event handlers (IE does this)
    			support.noCloneEvent = false;
    		});
    		div.cloneNode( true ).fireEvent( "onclick" );
    	}

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

    Запостил: inkanus-gray, 13 Августа 2015

    Комментарии (12) RSS

    • SEO-пост, посвящённый Gateway Time-out: http://i.imgur.com/F6wLcwO.jpg
      Ответить
    • Подсказка: не работает из-за того, что убрали проверку !div.addEventListener
      Ответить
      • [сарказм]http://www.youtube.com/watch?v=LLNDeVYo5jI

        Ты же не платишь 4к [/сарказм]
        Ответить
        • Но я и не зажимаю награду. Ничего я могу отдать в любой момент. Мне не жалко.

          P.S. Ещё подсказка: проблема здесь никак не связана с плавающим питухом.
          Ответить
          • Инканус, (чернильный анус?!!) если бы я что-нибудь знал о кросбаузерности, я бы ответил
            . хочешь специально для тебя покопаюсь в гугле? ^_^
            Ответить
            • Мы тут в тако́м по локоть копаемся, что покопаться в Гугле — мелочь.
              Ответить
      • > убрали проверку !div.addEventListener

        Неужели новые версии IE определяют функцию attachEvent, но кидают из неё исключения "attachEvent is obolete!!!111 Use addEventListener instead!!!!111"?
        Ответить
        • А вот... не знаю. Всякие Edge пока не тестировал.

          Но обнаружил совершенно неожиданное явление: в красном бублике до версии 11.50 гипотеза typeof div.attachEvent === undefined не срабатывает. Вплоть до версии 11.0x было typeof div.attachEvent === 'function'. Опера тогда всеми силами пыталась маскироваться под IE (именно маскироваться, а не полностью повторять функционал). Но об этом авторы Жуквери почему-то не знают.

          В итоге Жуквери 1.9+ не работают в Опере <11.50.
          Ответить
          • а опера еще жива?
            Ответить
            • https://stats.wikimedia.org/archive/squid_reports/2015-02/SquidReportClients.htm

              Оперу 12.x использует примерно 1% пользователей Википедии. К счастью, Opera 11.x в статистике всплыла только в контексте Opera Mini, где всё равно полноценной обработки событий нет, к тому же у OM движок модифицированный.

              Смотрим другие счётчики: https://www.openstat.com/counter:meta/trends/report/browser#1807

              На долю 12-й Оперы приходится 2,88 %, на долю 11-й — 0,19 %, на долю 10-й — 0,05 %. Девятая Опера, к счастью, исчезла. Даже Тарас с неё ушёл. Но мы же не можем отказать в обслуживании 0,24% пользователей только потому, что у них 11-я или 10-я Опера!

              Наконец, посмотрим данные счётчиков LI.RU: https://www.liveinternet.ru/stat/ru/browsers.html

              Тут доля 12-й Оперы 1,6 %; доля 11-й — 0,1%; Опера 10 и 9 в следовых количествах (в среднем 40 тыс. и 22 тыс. пользователей в сутки против ≈ 50 миллионов, пользующихся другими браузерами). Да даже IE 6 кто-то пользуется, если верить статистике!
              Ответить
              • >> Да даже IE 6 кто-то пользуется, если верить статистике!

                Пользуются. Майкрософт уже он него открестилась, а они пользуются...
                Ответить

    Добавить комментарий