关闭/禁用旧浏览器中的脚本

Posted

技术标签:

【中文标题】关闭/禁用旧浏览器中的脚本【英文标题】:turn off / disable a script in older browsers 【发布时间】:2014-10-08 05:17:29 【问题描述】:

我使用的脚本在旧版浏览器(Internet Explorer 最高 IE8 和 Firefox 最高 FF3.5)中存在问题。如果网站加载了这些浏览器,有没有办法禁用它?请简单明了,因为我不懂 javascript,提前谢谢!

附:我想在旧浏览器中禁用的脚本是 fullpage.js

【问题讨论】:

火狐3.5?那是古老的。没有人使用它。对于 IE,您可以使用 <!--[if lte IE 7]> 您将不得不在 fullpage.js 本身中使用条件语句。 navigator.appVersionnavigator.userAgent.toLowerCase().indexOf('firefox') > -1 的组合是检测 Firefox 版本的良好开端。至于检测 IE,html 条件语句不是一个好的解决方案,因为您不能排除其他浏览器需要的脚本包含,因为其他浏览器不会解析条件语句。但是,您可以使用 <!--[if lt IE 9]><script>var oldIe = true;</script><![endif]--> 并检测 oldIe 是否存在于 fullpage.js 中 你能说得更清楚点吗?我必须插入一个条件注释: 但是我必须在脚本标签中写什么? 我只关心 IE。看到这个msdn.microsoft.com/en-us/library/ms537512(v=vs.85).aspx 谢谢,我明白如何使用条件注释,但是我必须在里面插入什么?是否有特定规则可以禁用另一个脚本? 【参考方案1】:

如前所述,除了低于 IE8 的浏览器之外,您不必担心其他任何事情。

编辑:将其更改为包括其他浏览器。我有点厚!

首先,从here 下载 Modernizr 插件并将其调用到您的页面中。

<script type="text/javascript" src="/pathTo/modernizr.js"></script>

然后照常调用 fullpage.js 文件

<script type="text/javascript" src="jquery.fullPage.js"></script>

然后在 document.ready 中,检测是否支持 CSS3 并调用 fullpage 方法。

$(document).ready( function() 
    if($(html).hasClass('csstransitions'))
    
        $('#fullpage').fullpage();
    
);

这意味着只有在浏览器支持 CSS3(通过检测过渡)时才会打开它的功能,从而忽略 IE8 及更低版本并包括所有其他浏览器。

【讨论】:

感谢您的帮助!写这个是否 fullpage.js 不会在 IE7 和更早版本中加载? (这就是我想做的) 应该是gte(大于或等于),而不是lte(小于或等于)IE8而不是IE7,因为fullPage.js is fully functional on all modern browsers, as well as some old ones such as Internet Explorer 8, 9, ... 所以我必须写: 对吗?但它也会在其他浏览器中加载吗? (Webkit,Moz,O) 哎呀我的错误,我在示例中更改了它 大家好,如果我只在这个条件注释中调用 fullpaje.js,它是否也可以在其他浏览器(Chrome、FF、O..)中工作?【参考方案2】:

要解决此问题,您可以确保代码检查导致错误的函数在运行脚本之前可用。

if (typeof yourFunctionName == 'function' && typeof yourFunctionName2 == 'function') 
    //Your code here
 

使用 && 仅在所有函数都存在时才运行代码。

这将确保您的代码仅在兼容的浏览器上运行并避免任何猜测。

Can I Use 还有助于跟踪可用功能,适用于各种版本的浏览器 http://caniuse.com/#cats=JSAPI

【讨论】:

以上是关于关闭/禁用旧浏览器中的脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何在运行 Selenium 脚本时禁用 chrome 浏览器中的身份验证弹出窗口

如何关闭浏览器javascript脚本和广告拦截

Asp.Net:关闭并重新打开浏览器实例后保留旧的浏览器会话

如何在 Web 应用程序的浏览器上禁用按钮关闭?

如何关闭跨站点脚本 (XSS) 筛选器

chrome浏览器老是跳出“当前页面的脚本发生错误”,请问chrome如何关闭读写脚本?谢谢