Как я динамично загружаю Google Analytics JavaScript?

Ящик Rust-PHF предоставляет структуры данных времени компиляции, включая (упорядоченные) карты и наборы.

К сожалению, на сегодняшний день он не поддерживает инициализацию набора std::net::IpAddr, но может использоваться со статическими строками:

static IP_SET: phf::Set<&'static str> = phf_set! {
    "127.0.0.1",
    "::1",
};

15
задан Thomas Owens 11 August 2009 в 13:24
поделиться

4 ответа

Программирование на стороне сервера было бы проще, я думаю, но я нашел в это некоторое время тому назад. Обратите внимание, что он специально устанавливает его для заголовка html .

Также проверьте первую ссылку внизу «Добавление Javascript через Ajax».

0
ответ дан 1 December 2019 в 05:12
поделиться

Попробуйте использовать точный код JavaScript, предоставленный Google, а затем условно отобразите этот фрагмент кода на основе конструкции в вашей структуре пользовательского интерфейса. Вы не сказали, на какой платформе это работает, если это ASP.NET, вы можете поместить код в PlaceHolder или UserControl, а затем установить для Visible значение true или false в зависимости от настройки файла конфигурации, если сценарий должен быть включен. Я использовал этот подход на нескольких сайтах, чтобы предотвратить включение сценария Google Analytics в предварительную среду.

1
ответ дан 1 December 2019 в 05:12
поделиться

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

var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
var gaScript = document.createElement('script');
var loaded = false;
gaScript.src = gaJsHost + "google-analytics.com/ga.js";

$(gaScript).load(function(){
  loaded = true;
  var pageTracker = _gat._getTracker(Consts.google_analytics_uacct);
  pageTracker._initData();
  pageTracker._trackPageview();
});

document.body.appendChild(gaScript);

// And to make it work in ie7 & 8
gaInterval = setInterval(function() {
  if (!loaded && typeof _gat != 'undefined') {
    $(gaScript).load();
    clearInterval(gaInterval);
  }
},50);

Я пытаюсь разобраться ... разрешено ли это в Google.

0
ответ дан 1 December 2019 в 05:12
поделиться
function loadGA()
{
    if(typeof _gat == 'function') //already loaded
    {
        //innitGA();
        // you may want the above line uncommented.. 
        // I'm presuming that if the _gat object is there
        // you wouldn't want to.
        return;
    }
    var hostname = 'google-analytics.com';
    var protocol = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
    js = document.createElement('script');
    js.setAttribute('type', 'text/javascript');
    js.setAttribute('src', protocol+hostname+'/ga.js');
    document.body.appendChild(js);
    //2 methods to detect the load of ga.js
    //some browsers use both, however
    loaded = false; // so use a boolean
    js.onreadystatechange = function () {
        if (js.readyState == 'loaded') 
        { 
            if(!loaded)
            {
                innitGA();
            }
            loaded = true;
        }
    };
    js.onload = function () 
    {
        if(!loaded)
        {           
            innitGA();
        }
        loaded = true;
    };
}

function innitGA()
{
    //var pageTracker = _gat._getTracker('GA_ACCOUNT/PROFILE_ID');
    //pageTracker._initData();
    //pageTracker._trackPageview();
    alert('oh hai I can watch plz?');
}

просто вызовите loadGA () ... проверено в IE6 / 7/8, FF3, Chrome и Opera

извините, если я немного опоздал на эту вечеринку.

0
ответ дан 1 December 2019 в 05:12
поделиться
Другие вопросы по тегам:

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