Добрый вечер!
Есть решение создания виджета с глобалной переменной:
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>