ЙажаСценарий / Говнокод #18595 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 inkanus-gray, (Updated )

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

  • Подсказка: не работает из-за того, что убрали проверку !div.addEventListener
    Ответить
      • Но я и не зажимаю награду. Ничего я могу отдать в любой момент. Мне не жалко.

        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 кто-то пользуется, если верить статистике!

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

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

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8