13.12.2009, 20:50
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
tenshi,
давай представим (точнее ты представишь, а я вспомню).
Есть чужой сайт, на котором должен работать твой скрипт. Разработчик сайта определил глобальную функцию addEventListener, которая не добавляет обработчики событий к объекту window по той простой причине, что она сама перекрыла оригинальный метод. Ты работаешь с jQuery. Твоя задача повесить набор обработчиков событий на window.
|
|
29.01.2010, 15:51
|
|
Рассеянный профессор
|
|
Регистрация: 06.04.2009
Сообщений: 2,379
|
|
M.removeClass = function(el, cl) {
el = $(el);
var className = el.className.replace(new RegExp('\\b' + cl + '\\b', 'g'), ' ');
if (className != el.className) {
el.className = className;
}
};
alert('prefix-name other'.replace(/\bname\b/g, ' '));
function random(start, end) {
if (arguments.length == 1) {
end = start;
start = 0;
}
return Math.random() * (end - start) + start;
}
Шанс start стремится к нулю, но не равен ему, шанс end == 0. Несимметрично.
|
|
29.01.2010, 15:56
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от Riim
|
M.removeClass
|
Да, я знаю, в todo висит ))
Тут я Math.round забыл, недавно исправил, не push'ил ещё.
Спасибо за репорт ))
|
|
29.01.2010, 16:04
|
Профессор
|
|
Регистрация: 20.03.2008
Сообщений: 1,183
|
|
вот только не надо выдумывать себе проблем ;-) а коли уж замучала параноя, то исполняй свои скрипты в отдельной песочнице
__________________
.ня
|
|
29.01.2010, 16:07
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
tenshi,
это о чём? И что за паранойя?
|
|
29.01.2010, 18:45
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Сообщение от Kolyaj
|
Разработчик сайта определил глобальную функцию addEventListener, которая не добавляет обработчики событий к объекту window по той простой причине, что она сама перекрыла оригинальный метод.
|
Тут разработчик, как бы это сказать по мягче, и как выражаются, быдлокодер, сам и виноват, а не библиотека.
|
|
29.01.2010, 20:42
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
PeaceCoder,
ты вырвал фразу из контекста.
Сообщение от Kolyaj
|
Есть чужой сайт, на котором должен работать твой скрипт.
|
Тот пост относился не к данной библиотечке, а к вопросу, всегда ли уместно использовать сторонние фреймворки.
|
|
29.01.2010, 20:48
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Если сильно интересно, то вот тот сайт _http://www.kingsland.ru/
/**
* Объявляем и сразу вызываем функции,
* чтоб не проверять поддержку методов
* каждый раз:
*/
var addEventListener = function() {
// Если браузер IE:
if (window.attachEvent)
// Возвращаем функцию для IE:
return function(element, event, callback) {
// Фиксуем callback, чтоб установить правильный
// this, и передавать объект события первым параметром:
callback.__callbackfix = function() {
callback.call(element, window.event);
};
// Устанавливаем обработчик (не забываем про "on")
return element.attachEvent("on" + event, callback.__callbackfix);
}
// Если браузер W3C-совместим:
if (window.addEventListener)
// Возвращаем функцию без фиксов:
return function(element, event, callback) {
// Последний параметр всегда false, для совместимости с IE:
return element.addEventListener(event, callback, false);
}
}();
|
|
30.01.2010, 01:34
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
ну и ? то что ты привел это неграмотная библитека сделанная как раз тем кем я назвал.
фреймворк НЕ должен влиять на параметры тех или инных стандартных методов и/или элементов. Если это происходит - такой ФВ может быть не совместим с другими. На этом основывается мой ФВ.
|
|
30.01.2010, 09:25
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
Пффф. PeaceCoder, причем тут должен, не должен, Вы еще маме того стороннего разработчика пойдите нажалуйтесь. Ну как ребенок, честно. Вопрос стоит так -- как на уже готовый сайт добавить новый функционал, не переделывая старый под угрозой получения в глаз. И вот тут мы можем ВНЕЗАПНО увидеть подобное тому, что написал Kolyaj.
|
|
|
|