Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Почему не работает js в IE? (https://javascript.ru/forum/css-html-internet-explorer/76823-pochemu-ne-rabotaet-js-v-ie.html)

bridun 17.02.2019 23:08

Почему не работает js в IE?
 
Столкнулся с проблемой в IE не хочет работать скрипт и еще как как добавить 0 к часам например нужно до 01:01:01 а выводит 1:1:1
var countDownDate = new Date("02,07,2019,23:01:00 GMT+03:00").getTime();

var x = setInterval(function() {

    var now = new Date().getTime();

    var distance = countDownDate - now;

    var days = Math.floor(distance / (1000 * 60 * 60 * 24));
    var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
    var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
    var seconds = Math.floor((distance % (1000 * 60)) / 1000);

    document.getElementById("conf_time").innerHTML = "начало через : " + hours + ":" + minutes + ":" + seconds; 

    if (distance < 0) {
        clearInterval(x);
        document.getElementById("conf_time").innerHTML = "мероприятие уже проходит";
    }
}, 1000);

рони 18.02.2019 09:36

bridun,
<div id="conf_time"></div>
 <script>
var countDownDate = new Date("02/18/2019 23:01:00 GMT+0300").getTime();
function two(num)
{
    return (num <= 9 ? "0" : "")+ num

}
var x = setInterval(function() {

    var now = new Date().getTime();

    var distance = countDownDate - now;

    var days = Math.floor(distance / (1000 * 60 * 60 * 24));
    var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
    var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
    var seconds = Math.floor((distance % (1000 * 60)) / 1000);

    document.getElementById("conf_time").innerHTML = "начало через : " + two(hours) + ":" + two(minutes) + ":" + two(seconds);

    if (distance < 0) {
        clearInterval(x);
        document.getElementById("conf_time").innerHTML = "мероприятие уже проходит";
    }
}, 1000);

  </script>

andatr 01.10.2020 19:31

Приветствую вас, господа программисты.
Учу JS по книжке.
Почему-то не могу в IE задать переменную с помощью let и const, а только через var. Так же не выводятся алертом вещи типа `текст ${переменная} текст`.
Прошу подсказать, если кто-то с подобным сталкивался.
п.с.: думал, может, эксплорер старый установлен, загрузил последнюю версию - то же самое.

voraa 01.10.2020 19:52

Что вы называете IE и что вы называете "последней версией"?
В ИЕ11 шаблонные строки `${}` действительно не реализованы.
Но в Edge должны быть
Но let в ИЕ11 вроде был

andatr 02.10.2020 01:01

Добрый вечер.
Internet Explorer. Думал, что ставлю 11, оказалось, что он 10-й.
К сожалению, с let и const не работает, только var.
Возможно, проблема из-за Windows, который давно не обновлялся.
Попробую завтра let на новом компьютере, этого года.
Благодарю Вас за информацию. С уважением.

voraa 02.10.2020 07:10

А почему не Netscape Navigator?

andatr 02.10.2020 18:49

потому что я таких слов не знаю :)
да, на новом компе и let, и const работают. Надо железяку чинить :D

laimas 02.10.2020 21:25

Цитата:

Сообщение от andatr
на новом компе и let, и const работают. Надо железяку чинить

Это зависит от версии браузера, а не от компа, просто на старую версию форточек нельзя установить какой-то из IE.

Netscape Navigator - это браузер, который первым почил в бозе. ;)

andatr 03.10.2020 10:36

понятно, спасибо

micscr 06.10.2020 08:02

Цитата:

Сообщение от andatr (Сообщение 529394)
Добрый вечер.
Internet Explorer. Думал, что ставлю 11, оказалось, что он 10-й.
К сожалению, с let и const не работает, только var.
Возможно, проблема из-за Windows, который давно не обновлялся.

Для 11-го нужен виндовс 7 с service pack1

SuperZen 06.10.2020 13:19

в общем, можно с помощью webpack или parcel или других сборщиков проекта, транспилировать современный (es5-6 и т.д.) для поддержки более старых версий браузеров... т.е. пишем на современном js и говорим для какой версии js мы хотим получить итоговый js файл )... возможно придется обложиться полифилами...

voraa 06.10.2020 15:52

Не все возможно.
Proxy - нет.
mutationObserver - нет
WeakMap - написано, что есть, но сомневаюсь, что это реальная работа, а не имитация.

Не говоря уж о тех возможностях, которые не в самом языке, а в API, HTML, CSS

SuperZen 06.10.2020 20:52

API еще как-то понять можно, но HTML, CSS ))

https://github.com/GoogleChrome/proxy-polyfill#support
https://github.com/bitovi/mutationob...tationobserver
https://github.com/ungap/weakmap

Пить я буду, но курить не брошу )

voraa 07.10.2020 16:51

Цитата:

Сообщение от SuperZen
Пить я буду, но курить не брошу )

С такими полифилами спиться вполне можно.

Цитата:

Сообщение от SuperZen
https://github.com/GoogleChrome/proxy-polyfill#support

Вот это не работает
let ar =[]
let handl = {
	get: function (tg, name) {
		let v = tg[name]
		console.log('get', name, v)
		return v;
	},
	set: function (tg, name, val) {
		console.log('set', name, val)
		tg[name] = val;
		return true;
	}
}

let par = new Proxy (ar, handl)

par[0] = 0;
par[1] = 1;
par.push (2)


Цитата:

Сообщение от SuperZen
https://github.com/ungap/weakmap

Тоже косяк

function ocopy (os) {
	return Object.create(os.__proto__, Object.getOwnPropertyDescriptors(os))
}

let wm = new WeakMap();
let obj1 ={a: 1, b:2};
wm.set(wm, {c:2,d:3})
let obj2 = ocopy(obj1)
wm.has(obj2)    // TRUE ???


Я не говорю, что они не нужны.
Но

Цитата:

Сообщение от SuperZen
т.е. пишем на современном js и говорим для какой версии js мы хотим получить итоговый js файл )... возможно придется обложиться полифилами...

Цитата:

Сообщение от voraa
Не все возможно.


SuperZen 07.10.2020 19:13

)) аще по и на, пусть дэвид блэйн и пишет


Часовой пояс GMT +3, время: 15:43.