Как вызвать пользовательское событие JavaScript в IE8?

я пытаюсь запустить пользовательское событие в IE8 и вместеВот а такжеВот, Но я не могу заставить его работать ... Я

Я использую jquery mobile с помощью requireJS и Google Analytics. Так что я'м слежения за JQMpageshow событие. Однако, поскольку requireJS загружает скрипты асинхронно, моя привязка к pagehow должна быть сделана в javascript »обертка»иначе это приведет к ошибке, потому что ни jquery, ни jquery mobile не будут загружены к моменту анализа фрагмента.

Так что я'Я делаю это в конце каждой страницы:

if (document.addEventListener) {
    document.addEventListener("jqmReady",function(){trigAnalytics("jqmReady");alert("FF detected")},false); 
} else if ( document.attachEvent ) {
    document.attachEvent("jqmReady", function(){trigAnalytics("jqmReady");alert("IE detected")}); 
}

И когда обнаружен, язапускаю мой фрагмент аналитики с привязкой к показу страницы:

var trigAnalytics = function( trigger ){ 
    $(document).on('pageshow','div:jqmData(role="page").basePage', function (event, ui) {
        var url = location.href; 
        try { 
            hash = location.hash; 
            if (hash && hash.length > 1) {
                 _gaq.push(['_trackPageview', hash.substr(1)]);
                 _gaq.push(['_setCustomVar', 1, 'id_external', ########, 1 ]);
            } else {
                _gaq.push(['_trackPageview', url]);
                _gaq.push(['_setCustomVar', 1, 'id_external', ########, , 1 ]);
                _gaq.push(['b._trackPageview', url]);
            } 
        } catch(err) { } 
    }); 
    if (typeof _gaq !== "undefined" && _gaq !== null) { 
        $(document).ajaxSend(function(event, xhr, settings){ 
            _gaq.push(['_trackPageview', settings.url]); 
            _gaq.push(['b._trackPageview', settings.url]);
        }); 
    } 
}; 

Таким образом, чтобы пнуть цепочку событий, мне нужно вызватьjqmReady когда JQM будет готов. JQM использует ихmobileinit событие, чтобы указать только на это. Так что внутри моего контроллера приложений init, ям привязка к нему такова:

$(document).bind("mobileinit", function () {

    // non-IE OK
    if (document.createEvent) {
        evt = document.createEvent("Event");
        evt.initEvent("jqmReady", true, true);
        document.dispatchEvent(evt);

    } else if (document.createEventObject) { 
    // MSIE (NOT WORKING)

        document.documentElement.evt = 0; // an expando property
        document.documentElement.attachEvent("jqmReady", function () {
            document.documentElement.evt = document.documentElement.evt + 1;
            });
    }
});

Я попытался просто вызвать $ (window) .trigger ('jqmReady»), потому что когдаmobileinit триггеры, JQuery доступно. Однако, похоже, события, созданные вaddEventListener не может быть запущен, как это, поэтому мне нужно решение только для JavaScript, чтобы вызвать пользовательское событие в IE.

Вопрос:

Может кто-нибудь дать мне указатель о том, как правильно запустить пользовательское событие JavaScript для IE8?

Ответы на вопрос(2)

Ваш ответ на вопрос