grigor007
@grigor007
http://goldapp.ru

Каким должен быть современный js виджет для сторонних сайтов?

Добрый вечер!

Есть решение создания виджета с глобалной переменной:

var widgetOptions = {
	    id: 2,
	    bg_color: 'FF0011'
	};
(function() {
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.async = true;
    script.src = (document.location.protocol == "https:" ? "https:" : "http:") + "//fitnesswidget.my/js/widget.js";
    document.getElementsByTagName('head')[0].appendChild(script);
})();


Но как-то это коряво. А что если на стороннем сайте я переопределю другую глобальную переменную? Или это вполне нормальный способ?

Посмотрел у Яндекса код метрики, там без глобальных переменных. Но куда рыть не знаю..

(function (d, w, c) {
    (w[c] = w[c] || []).push(function() {
        try {
            w.yaCounter30271687 = new Ya.Metrika({id:30271687,
                    clickmap:true,
                    trackLinks:true,
                    accurateTrackBounce:true});
        } catch(e) { }
    });

    var n = d.getElementsByTagName("script")[0],
        s = d.createElement("script"),
        f = function () { n.parentNode.insertBefore(s, n); };
    s.type = "text/javascript";
    s.async = true;
    s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";

    if (w.opera == "[object Opera]") {
        d.addEventListener("DOMContentLoaded", f, false);
    } else { f(); }
})(document, window, "yandex_metrika_callbacks");
</script>
  • Вопрос задан
  • 1238 просмотров
Решения вопроса 1
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы