0

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

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

提前致谢.......

4

3 回答 3

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

致谢:从网站内为特定浏览器禁用 JS

希望能帮助到你。

于 2013-04-04T04:52:58.957 回答
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 的建议来调试您的代码,而不是尝试禁用第三方脚本。

于 2013-04-04T04:53:22.813 回答
0

尝试

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

或者

警报(navigator.appName);

于 2013-04-04T05:17:53.013 回答