仅在Safari中将id添加到id

时间:2016-02-21 22:06:53

标签: javascript

当谈到 js 时,我很高兴并且很欣赏这些建议。

我正在尝试仅定位Safari并为ID添加一个类......但它无法正常工作。 请参阅下文。

if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1) {
  document.getElementById('menu-main-menu').className += ' menu-main-menu-safari';
}

2 个答案:

答案 0 :(得分:0)

您的代码是正确的。

想要证明吗?

在Safari上右键单击此S.O。网页中的“问题”橙色按钮和“检查元素”

然后在控制台上粘贴以下代码:

if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1) {
    document.getElementById('nav-questions').className += ' menu-main-menu-safari';
}

这正是你的代码execpt我将id更改为橙色“问题”按钮之一。

您将在浏览器检查器中看到添加到按钮元素的类。

因为代码是正确的,可能你有一些css类属性的问题(或者只是元素id错误)。

附注:我最近不得不处理Safari和Chrome中的一些问题(错误)。

我理解需要特定于浏览器的补丁。

只需整理代码,以便在浏览器修复后轻松删除补丁。由于补丁可能不再需要或更糟糕 - 导致不当行为。

答案 1 :(得分:-1)

您可能不会喜欢这样,但浏览器检测错误,这是user agent mess的原因。相反,您应该使用功能检测,可能使用Modernizr