2016-01-28 2 views
0

У меня есть некоторый код, который можно найти здесь на JS FiddleJavascript работает на Chrome и Opera & Edge, но не на FireFox или IE 11

var getJSON = function (url) { 
    "use strict"; 
    return new Promise(function(resolve, reject) { 
    var xhr = new XMLHttpRequest(); 
    xhr.open('get', url, true); 
    xhr.responseType = 'json'; 
    xhr.onload = function() { 
     var status = xhr.status; 
     if (status == 200) { 
     resolve(xhr.response); 
     } else { 
     reject(status); 
     } 
    }; 
    xhr.send(); 
    }); 
}; 

function updateCount() { 
    "use strict"; 
    getJSON('http://192.99.124.166:8080/count').then(function(data) { 
    console.log('update'); 
    stats.innerText = data.result; //display the result in an HTML element 
}); 
} 

updateCount(); 

setInterval(updateCount, 10000); 

Если вы посещаете, что Скрипки страницы на Chrome, Opera или Microsoft Краю вы увидите автоматическую обновление статистики сервера и игрока каждые 10 секунд и работу над тем, как она была предназначена. Однако, если вы посещаете IE 11 или Firefox, в div нет ничего, что должно было загружать результаты.

Я не очень хорошо разбираюсь в Javascript и немного помог с этим кодом изначально через канал IRC. Я использовал JS Lint для проверки кода, и я обновил его и исправил то, что они считают плохим кодом, используйте строгий "и т. д. Однако это не решило проблему в IE 11 или Firefox.

Любая помощь будет очень благодарна, если вы это выясните, я использовал инспектор на IE 11 и Firefox и консоль отладки, но ничто не стреляет или не появляется. Фактически, он даже показывает сообщение (обновление) в консоли браузера, но не показывает div!

+0

проблема 'innerText'. посмотрите на это http://stackoverflow.com/questions/1359469/innertext-works-in-ie-but-not-in-firefox – PrinceG

+0

Привет, благодарю вас за ответ. Я действительно нашел эту тему вскоре после моего вопроса и начал ее читать. Я могу заставить код работать должным образом в firefox, если я использую textContent, но он по-прежнему не работает на IE 11 даже с этим. Так что я все еще пытаюсь понять это. – MajorCyto

ответ

0

Посылы: not supported by IE. Но есть много A+ compliant polyfills, доступных для использования.

innerTextdoes not work in Mozilla Альтернативные атрибуты на выбор: textContent или innerHTML для разметки.

+0

innerHTML, похоже, решает проблему для Firefox, и он по-прежнему работает в Chrome и Edge & Opera. Но, не IE 11. Простите меня, я не разбираюсь в javascript вообще, поэтому я не уверен, что означает «Обещания». Редактировать: О, я просто прочитал первое сообщение, так что это обещание. Но, я недостаточно разбираюсь, чтобы иметь возможность переписать или использовать полиполки, чтобы исправить это. Но спасибо за то, что вы предоставили мне ссылку на объяснение. К сожалению, мне просто нужно оставить IE. – MajorCyto

+0

Объекты Promise помогают избежать глубоко вложенных обратных вызовов, когда последовательно выполняются несколько асинхронных операций. В его нынешнем виде ваш пример можно переписать без обещаний, обработав данные ответа из функции прослушивателя нагрузки. См. [Использование XMLHttpRequest] (https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest) для обработанных примеров. – traktor53

Смежные вопросы