繁体   English   中英

要停止通过代码在特定页面中加载IE脚本

[英]want to stop load the script for IE in a particular page by code

我创建了一个网站,每个页面在每个浏览器中都可以正常工作,但是IE中只有一个页面(窗体页面)需要花费太多时间进行加载,而我得到的错误是IE运行的是长脚本且没有响应。

我找到了一个解决方案,在IE的工具部分下,我必须禁用脚本选项,并且它也可以工作,但是不可能告诉每个用户都遵循此解决方案,所以我想知道是否有任何脚本或代码与我只能借助它来禁用脚本,仅针对IE中的此FORM PAGE动态地为每个用户(我为此表单创建了单独的模板)

提前致谢.......

怎么样...

<script>
    if( /* Browser checks */ )
        document.write( '<script src="scripts.js"></script>' );
</script>

如果您所有的脚本都放在一个地方,或者至少没有嵌入到整个页面中,那么也许应该在检查浏览器之后将它们包括在JavaScript中:

这是一个场景,说明了为什么将您的代码http://en.wikipedia.org/wiki/Don%27t_repeat_yourself放在同一位置非常重要。

要检测浏览器,请访问http://www.quirksmode.org/js/detect.html ,但是请注意指向其对象检测页面的链接,如果这样做对您的用例更有用。 http://yepnopejs.com/对于后者是有用的,后者是Modernizr的一部分。

鸣谢: 在网站内为特定的浏览器禁用JS

希望能帮助到你。

使用IE条件注释:

<![if !IE]>
<script>
    // your non IE script here.
</script>
<![endif]>

有关更多信息,请参见: http : //msdn.microsoft.com/zh-cn/library/ms537512(v=vs.85).aspx


附加说明:

关于条件注释如何工作的注释。

条件注释是IE特定的功能,可根据IE版本或浏览器是否为非IE来显示或隐藏部分内容(不一定是脚本)。 例如:

<![if !IE]>
    Hello non IE
<![endif]>

将在非IE浏览Hello non IE上打印Hello non IE ,而在Hello non IE上则完全不打印。 这只是一个IF语句。 这不是擦除内容的神奇方法。 例如:

Hello non IE
<![if !IE]>
    Hello non IE
<![endif]>

将打印:

Hello non IE

在IE上:

Hello non IE
Hello non IE

在非IE浏览器上。 它不会删除以前的文本。 它只是对IE隐藏了其中的文本。

因此,要排除脚本形式的IE,您需要执行以下操作:

<![if !IE]>
<script src="non_ie_compatible_script.js">
<![endif]>

不是这个:

<script src="non_ie_compatible_script.js">

<![if !IE]>
<script src="non_ie_compatible_script.js">
<![endif]>

如果您无权访问包含脚本的原始行,那么您将无能为力。

如果您有权访问脚本,则可以使用此页面上发布的其他解决方案。 但是,正如您在OP中提到的那样,您也无权访问该脚本,因此此处的解决方案均无效。 实际上,除非您有权访问服务器本身或位于服务器前面的某些代理(在这种情况下,您可以拦截整个页面并删除脚本包含标记,然后再将其包含在浏览器中),否则您无法解决任何问题问题。

实际上,最好的选择也许不是编码解决方案,而是人为解决方案:与脚本的所有者/维护者或网站的所有者/维护者交谈,并请他们为您提供在特定页面上关闭脚本的方法。

或者执行@karthick的建议并调试代码,而不是尝试禁用第三方脚本。

尝试

http://www.quirksmode.org/js/detect.html

要么

alert(navigator.appName);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM