У меня есть несколько JS, использующих литералы шаблонов ES6, которые я хочу гарантировать, чтобы иметь запасной вариант для старых браузеров.
Обычно, чтобы обнаружить функцию javascript, я сделал бы стандартный оператор if, чтобы увидеть, обнаружена ли эта функция вобъект окна:
if("JavascriptFeature" in window){
// do something with the feature
}
Как бы я это сделал с литералами шаблона в контексте ниже?
У меня есть код ниже, который в основном используется для гарантии того, что свойство 100vh работает должным образом на мобильном устройстве / iPad, и я хочу заключить JS в условие, которое запускается, только если браузер может использовать литералы шаблона:
JS
function resizeSection(){
// First we get the viewport height and we multiple it by 1% to get a value for a vh unit
var vh = window.innerHeight * 0.01;
// Then we set the value in the --vh custom property to the root of the document
document.documentElement.style.setProperty('--vh', `${vh}px`);
}
resizeSection();
addEventListener("resize", resizeSection, false)
CSS
.heading-section {
/* Use vh as a fallback for browsers that do not support Custom Properties */
height: calc(100vh);
/*MODERN BROWSERS*/
height: calc(var(--vh, 1vh) * 100);
}
Обратите внимание: это не дубликат Обнаружение литералов шаблона в javascript , который аналогичензвучащий вопрос в совершенно ином контексте.