Ваша проблема в том, что document
еще не готов, когда ваш javascript сработает, и поэтому document.body
даст вам null
.Чтобы получить доступ к document
, вам необходимо выполнить код, когда загружена объектная модель документа (DOM).Вы можете сделать это, добавив прослушиватель событий в ваш window
, так что вы запускаете свой код, когда DOM загружен (используя "DOMContentLoaded"
):
window.addEventListener('DOMContentLoaded', function() {
var safari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
var windows = (navigator.userAgent.indexOf("Win")!=-1);
var body = document.body; // you can now safely access document.body
if (safari && windows) {
alert('this is safari on windows'); // This works
body.classList.add("safwin"); // This will now work
}
});