Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Библиотечка . (https://javascript.ru/forum/project/6025-bibliotechka.html)

Kolyaj 13.12.2009 20:50

tenshi,
давай представим (точнее ты представишь, а я вспомню).
Есть чужой сайт, на котором должен работать твой скрипт. Разработчик сайта определил глобальную функцию addEventListener, которая не добавляет обработчики событий к объекту window по той простой причине, что она сама перекрыла оригинальный метод. Ты работаешь с jQuery. Твоя задача повесить набор обработчиков событий на window.

Riim 29.01.2010 15:51

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. Несимметрично.

Kolyaj 29.01.2010 15:56

Цитата:

Сообщение от Riim
M.removeClass

Да, я знаю, в todo висит ))

Цитата:

Сообщение от Riim
random

Тут я Math.round забыл, недавно исправил, не push'ил ещё.

Спасибо за репорт ))

tenshi 29.01.2010 16:04

вот только не надо выдумывать себе проблем ;-) а коли уж замучала параноя, то исполняй свои скрипты в отдельной песочнице

Kolyaj 29.01.2010 16:07

tenshi,
это о чём? И что за паранойя?

PeaceCoder 29.01.2010 18:45

Цитата:

Сообщение от Kolyaj
Разработчик сайта определил глобальную функцию addEventListener, которая не добавляет обработчики событий к объекту window по той простой причине, что она сама перекрыла оригинальный метод.

Тут разработчик, как бы это сказать по мягче, и как выражаются, быдлокодер, сам и виноват, а не библиотека.

Kolyaj 29.01.2010 20:42

PeaceCoder,
ты вырвал фразу из контекста.
Цитата:

Сообщение от Kolyaj
Есть чужой сайт, на котором должен работать твой скрипт.

Тот пост относился не к данной библиотечке, а к вопросу, всегда ли уместно использовать сторонние фреймворки.

Kolyaj 29.01.2010 20:48

Если сильно интересно, то вот тот сайт _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);
        }
}();

PeaceCoder 30.01.2010 01:34

ну и ? то что ты привел это неграмотная библитека сделанная как раз тем кем я назвал.
фреймворк НЕ должен влиять на параметры тех или инных стандартных методов и/или элементов. Если это происходит - такой ФВ может быть не совместим с другими. На этом основывается мой ФВ.

e1f 30.01.2010 09:25

Пффф. PeaceCoder, причем тут должен, не должен, Вы еще маме того стороннего разработчика пойдите нажалуйтесь. Ну как ребенок, честно. Вопрос стоит так -- как на уже готовый сайт добавить новый функционал, не переделывая старый под угрозой получения в глаз. И вот тут мы можем ВНЕЗАПНО увидеть подобное тому, что написал Kolyaj.


Часовой пояс GMT +3, время: 06:30.