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

时间:2013-04-04 04:49:03

标签: php javascript

我创建了一个网站,每个页面在每个浏览器都正常工作,但IE中只有一个页面(表单页面)加载太多时间,我得到的错误是IE运行的是一个很长的脚本而不是响应。

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

提前致谢.......

3 个答案:

答案 0 :(得分:0)

如何关注..

<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的一部分。

致谢:Disabling JS from within Website for specific browsers

希望它有所帮助。

答案 1 :(得分:0)

使用IE条件评论:

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

有关详细信息,请参阅:http://msdn.microsoft.com/en-us/library/ms537512(v=vs.85).aspx


补充说明:

关于条件评论如何运作的说明。

条件注释是IE特定功能,用于根据IE版本或浏览器是非IE来公开或隐藏部分内容(不一定是脚本)。例如:

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

将在非IE浏览器上打印Hello non IE,在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建议并调试代码,而不是尝试禁用第三方脚本。

答案 2 :(得分:0)

尝试

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

警报(navigator.appName);