gpt4 book ai didi

javascript - 问题 "Windows and Safari function"

转载 作者:行者123 更新时间:2023-12-02 23:25:51 25 4
gpt4 key购买 nike

我只想在 Windows 上的 Safari 上运行一些 js 代码。“Alert”可以工作,但任何其他代码(例如 body.classList ...等)都不起作用。为什么?非常感谢您的帮助

var safari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
var windows = (navigator.userAgent.indexOf("Win")!=-1);
var body = document.body;

if (safari && windows) {
alert('this is safari on windows'); //This works
body.classList.add("safwin"); //This not works
}

最佳答案

您的问题是,当您的 javascript 触发时,document 尚未准备好,因此 document.body 将为您提供 null。为了访问文档,您需要在加载文档对象模型 (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
}
});

关于javascript - 问题 "Windows and Safari function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56735575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com