X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Вопрос к опытным программистам (по файербагу), как узнать какие файлы скриптов используются
S1xteen
S1xteen
Topic Starter сообщение 20.3.2013, 21:12; Ответить: S1xteen
Сообщение #1


Бывалый
****

Группа: User
Сообщений: 293
Регистрация: 20.9.2010
Поблагодарили: 64 раза
Репутация:   12  


Доброго времени. Каким способом можно посмотреть какие файлы скриптов каким-либо образом взаимодействуют с конкретным элементов в DOM.
Например хочу узнать какие именно файлы относятся к слайдеру, исключая все остальные скрипты.
Спасибо.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
tszyan
tszyan
сообщение 20.3.2013, 23:08; Ответить: tszyan
Сообщение #2


Участник
***

Группа: User
Сообщений: 207
Регистрация: 28.1.2013
Из: Москва
Поблагодарили: 110 раз
Репутация:   27  


S1xteen,
Универсального контроля обращений к элементу нет. Брейкпоинты в DOM ставятся на события - например изменение атрибута.

Ваша задача обычно выполняется глазами. Код отвечающих за слайдер как правило в 1-2 местах (2-х если доработка или расширение какой-то стандартной библиотеки).
Я бы делал так:
0. Поискал в скриптах, код которых расположен прямо на странице, инициализацию слайдера по id или class. В 70% случаев она есть. От нее можно плясать - вычислить js-скрипт/библиотеку.
1. Просмотрел названия подключаемых js и отсеил то, что слайдером быть не может. Если есть название явно указывающее на слайдер - вуаля. Останется просмотреть код или документацию к библиотеке/скрипту, чтобы понять как он инициализируется.
2. Прогуглил неизвестные js-библиотеки. Что-то из них возможно - слайдер.
3. Если нет, то глазами смотрел бы все скрипты на странице, а потом малоизвестные подключаемые js.

Резюме - если есть доступ к исходникам - поиск по файлам id и class элемента слайдера. Если только к сайту - можно сохранить страницу локально и также сделать поиск по файлу.

Фаербаг тут плохой помошник (в данной конкретной задаче).

Сообщение отредактировал tszyan - 20.3.2013, 23:10
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
S1xteen
S1xteen
Topic Starter сообщение 21.3.2013, 0:17; Ответить: S1xteen
Сообщение #3


Бывалый
****

Группа: User
Сообщений: 293
Регистрация: 20.9.2010
Поблагодарили: 64 раза
Репутация:   12  


tszyan, Спасибо за отклик, но действительно не хватает хорошего инструмента для решения таких проблем.
На относительно простых страницах описанный вами способ имеет место быть, но мои попытки проделать подобное с исходником ebay потерпели фиаско smile.gif
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
tszyan
tszyan
сообщение 21.3.2013, 1:22; Ответить: tszyan
Сообщение #4


Участник
***

Группа: User
Сообщений: 207
Регистрация: 28.1.2013
Из: Москва
Поблагодарили: 110 раз
Репутация:   27  


На ebay не сложнее. Там всего 2 скрипта подключаются прямым текстом, ну и еще 5-6 мелких можно найти, которые в тексте самой страницы.
Один из подключаемых скриптов - raptor и иже с ним.
Другой - jquery и прочая мишура.
(Контент описал примерно, на 1й взгляд, километры кода изучать не очень хочется.)

Поиск айдишника слайдера(mfbb) во 2-м скрипте дал результат:

Развернуть/Свернуть

(function (b, z) {
    b(document).ready(function () {
        var k = b(".mfbb"), h = k.find("ul.frms li.frm"), l = h.length, e, m = 0, A = k.hasClass("fallback"), i = 0, o = false, u = 0, v = b("body"), w = false, x = 0, p = {};
        for (e = 0; e < l; e++) {
            var r = b(h[e]);
            e != 0 && r.css({opacity: 0, display: "none"});
            if (A) {
                var B = r.attr("rel");
                r.append(b("<iframe src='" + B + "' frameborder='0'></iframe>"))
            }
        }
        var F = function () {
            var q = "", n = this;
            for (e = 0; e < l; e++) {
                var C = e === 0 ? "pg sel" : "pg";
                q += "<b class='" + C + "'>" + (e + 1) + "</b>"
            }
            q = "<span class='pngwp'>" + q + "</span>";
            $pngHtml = b(q);
            k.append($pngHtml);
            $pngHtml.css("display", "block");
            var s = b(".mfbb b.pg"), t = function () {
                var a = b(".mfbb .frm:not(.fst)");
                a.each(function (c) {
                    var f = "http://pages.ebay.com/rtm_default/1200/11098_" + (c + 1) + ".html", d = "<iframe scrolling='no' frameborder='no'  border='0' src='" + f + "'></iframe>";
                    b(this).html(d)
                })
            };
            k.find(".frm.fst").html(b.feedContext.mfbbFirstFrameContent);
            b.extend(this, {gotoPage: function (a) {
                if (a == 0) {
                    u++;
                    if (u >= 3) {
                        o = true;
                        h.off("mouseover").off("mouseout");
                        window.clearTimeout(i)
                    }
                }
                s.removeClass("sel");
                var c = b(h[m]),
                    f = b(h[a]);
                c.animate({opacity: 0}, 300, function () {
                    c.css("display", "none")
                });
                f.css("display", "block");
                f.animate({opacity: 1}, 300);
                m = a;
                b(s[a]).addClass("sel");
                var d = "FRM_" + a;
                if (p[d]) {
                    v.append(p[d]);
                    delete p[d]
                }
            }, sliderShow: function () {
                if (!o) {
                    var a = m + 1 >= l ? 0 : m + 1;
                    n.gotoPage(a);
                    i = window.setTimeout(n.sliderShow, 3E3)
                }
            }, initClientSideCall: function () {
                var a = b.feedContext.mfbbClientCallUrl, c = (new Date).getTime(), f = z.require("ebay.cookies").readCookie("npii", "cguid");
                if (!(k.hasClass("fallback") || !a)) {
                    a += "&ord=" + c;
                    a += "&cg=" + (f ? f : c);
                    a += "&cb=$.mfbb.callback";
                    b.ajax({url: a, dataType: "jsonp", error: function (d) {
                        d.readyState != 4 && d.status != 200 && t()
                    }});
                    x = window.setTimeout(function () {
                        w = true;
                        t()
                    }, 2500)
                }
            }, callback: function (a) {
                if (a && b.isArray(a) && a.length > 0 && !w) {
                    window.clearTimeout(x);
                    for (var c = 0, f = a.length; c < f; c++) {
                        var d = a[c];
                        if (d.CSSMetaData && d.CSSMetaData.CSSURLs)for (var g = 0, j = d.CSSMetaData.CSSURLs, D = j.length; g < D; g++) {
                            var E = b("<link>").attr({rel: "stylesheet", href: j[g]});
                            v.append(E)
                        } else if (a[c].id) {
                            var y = b('.frm[data-frame-id="' +
                                a[c].id + '"]');
                            g = a[c].content;
                            j = RegExp('<img.*?src="https?://srx([^"]*?)".*?>', "ig").exec(g);
                            if (y.length != 0) {
                                if (j) {
                                    g = g.replace(j[0], "");
                                    p["FRM_" + (c + 1)] = j[0]
                                }
                                y.html(g)
                            }
                        }
                    }
                } else t()
            }});
            if (l > 1) {
                s.on("click", function () {
                    var a = b(this), c = parseInt(a.html()) - 1;
                    if (m != c) {
                        window.clearTimeout(i);
                        n.gotoPage(c);
                        i = window.setTimeout(n.sliderShow, 3E3)
                    }
                });
                h.on("mouseover", function () {
                    o = true;
                    window.clearTimeout(i)
                });
                h.on("mouseout", function () {
                    o = false;
                    i = window.setTimeout(n.sliderShow, 1500)
                })
            }
        };
        b.mfbb = new F;
        b.mfbb.initClientSideCall();
        if (l > 1)i = window.setTimeout(b.mfbb.sliderShow, 3E3)
    })
})(jQuery, raptor);

Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Вопрос по seo для интернет магазина
куда девать продвинутые товары, которые уже не выпускают
18 viktormerke 2809 15.12.2017, 15:18
автор: Smspva
Открытая тема (нет новых ответов) Вопрос к знатокам Instagram
20 SEOMR 4184 30.11.2017, 14:25
автор: DiscordPro
Открытая тема (нет новых ответов) Вопрос про Телеграмм
18 syd2010 1171 28.11.2017, 14:25
автор: PostBrigada
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыАrticle manager вопрос
0 Smile3D 441 24.11.2017, 18:27
автор: Smile3D
Открытая тема (нет новых ответов) Вопрос по трансферу доменов
8 MakDonald 1206 13.11.2017, 11:40
автор: bum


 



RSS Текстовая версия Сейчас: 17.12.2017, 8:38
Дизайн