Home > IE6, jquery, Инструментарий, плагин > Злой плагин для jQuery

Злой плагин для jQuery

SUMMARY

A jQuery plugin for crashing IE6. That’ll teach those motherf!%@*#s to upgrade their s#*t.

http://plugins.jquery.com/project/crash

О плагине я узнал сегодня на хабре. В документации подробно описывается, как им пользоваться.

USAGE

To crash IE6 call

$.crash();

В jQuery добавляется метод crash(), вызов которого валит IE6 вот так:

iecrash

Что же именно приводит IE6 к такому конфузу? Я скачал плагин и стал изучать его исходный код…

/**
 * jQuery Crash (http://mktgdept.com/jquery-crash)
 * A jQuery plugin to crash IE6.
 *
 * v0.0.2 - 5 March 2010
 *
 * Copyright (c) 2009 Chad Smith (http://twitter.com/chadsmith)
 * Dual licensed under the MIT and GPL licenses.
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.opensource.org/licenses/gpl-license.php
 *
 * Use $.crash();
 *
 **/
;jQuery.crash=function(x){for(x in document.open);};

То есть вот этот код IE6 выполнить не может:

for(x in document.open);

Для тех кто не очень хорошо знаком с JavaScript, цикл for-in – это обход всех свойств объекта. Вообще document.open – это функция, которая открывает новое окно по указанному URL (MSDN). Но JavaScript позволяет использовать функции и как объекты в том числе. То есть на функции можно вешать разные свойства и это будет корректно с точки зрения языка.

Например, такой код покажет окошко с текстом «document.open.kuku = Ku-ku!» в Гугл Хроме. IE6 тоже покажет окошко, но другое (то, что в начале статьи).

document.open.kuku = "Ku-ku!";
 
for(x in document.open)
{
	alert('document.open.' + x + ' = ' + document.open[x]);
}

(*) вызов document.open.kuku эквивалентен вызову document.open['kuku'] в JavaScript

chrome_not_crash

У меня нет IE6, так что не могу проверить, распространяется ли эта особенность на такие функции, как document.getElementById() и вообще любые функции. Если у кого-то есть старый добрый злой ослик, проверьте и напишите. Мне весьма любопытно)

И, конечно, любопытна сама идея такого плагина-стимулятора. Хотя, сомневаюсь, что кто-то пользуется IE6 от хорошей жизни. Вряд ли стоит ее омрачать еще больше.

  1. No comments yet.
  1. No trackbacks yet.