Я думаю, что это из-за различных JS движков, используемых в разных браузерах.
Из этой статьи мы видим, что атрибуты nomodule
и type="module"
гарантируют только если сценарии будут выполнены, но не могут гарантировать, что они будут загружены:
nomodule
Этот логический атрибут установлен, чтобы указать, что сценарий не должен быть выполняется в браузерах, которые поддерживают модули ES2015.
module
: код обрабатывается как модуль JavaScript.
Поэтому нам нужно только убедиться, что сценарий type="module"
не будет выполнен в IE и сценарий nomodule
будет выполнен в IE, что противоположно в Chrome.
Возврат к двигателю JS, Chrome использует V8 в качестве двигатель JS и IE и Edge Legacy используют Chakra в качестве двигателя JS. Вы обнаружите, что оба сценария также будут загружены в Edge Legacy. Так что я думаю, что разные JS движки ведут к разному поведению.