您的位置:首页 > Web前端 > JavaScript

SCRIPT5039: 重新声明常量属性 遇到js错误,在IE9下会调试脚本会出现

2016-04-26 18:35 691 查看


                       错误,在IE9下会调试脚本会出现

遇到js错误,在IE9下会调试脚本会出现”相关的问题,中国学网通过互联网对“遇到js错误,在IE9下会调试脚本会出现”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:遇到js错误,在IE9下会调试脚本会出现SCRIPT5039: 重新声明常量属性 的错误,兼容模式下正常,求高手解答,具体解决方案如下:

解决方案1:

问题我自己找到了,原因是在demo中定义了history变量

解决方案2:

非兼容模式下 一般不用 考虑任何bug 因为 非兼容模式下 浏览器只考虑加载穿长扁短壮的憋痊铂花速度 会省略掉一部分css 和 js

自我解决:采用IE8兼容模式
<meta http-equiv="X-UA-Compatible" content="IE=8">


认识文件兼容性模式

IE8支持几种文件兼容性模式,它们具有不同的特性并影响内容显示的方式。

•Emulate IE8 mode指示IE使用<!DOCTYPE>指令来决定如何编译内容。Standards 

mode指令会显示成IE8 Standards mode而quirks mode会显示成IE5 mode。不同于IE8 mode,Emulate IE8 

mode重视<!DOCTYPE>指令。

•Emulate IE7 

mode指示IE使用<!DOCTYPE>指令来决定如何编译内容。Standards mode指令会显示成IE7 

Standards mode而quirks mode会显示成IE5 mode。不同于IE7 mode,Emulate IE7 

mode重视<!DOCTYPE>指令。对于许多网页来说这是最推荐的兼容性模式。

•IE5 mode 

编译内容如同IE7的quirks mode之显示状况,和IE5中显示的非常类似。

•IE7 mode编译内容如同IE7的standards 

mode之显示状况,无论网页是否含有<!DOCTYPE>指令。

•IE8 

mode提供对业界标准的最高支持,包含 W3C Cascading Style Sheets Level 2.1 Specification和W3C Selectors 

API,并有限的支持 W3C Cascading Style Sheets Level 3 Specification (Working 

Draft)。

•Edge mode指示IE以目前可用的最高模式显示内容。当使用IE8时其等同于IE8

mode。若(假定)未来放出支持更高兼容性模式的IE,使用Edge 

mode的页面会使用该版本能支持的最高模式来显示内容。同样的那些页面在使用IE8浏览时仍会照常显示。

由于edge mode使用该IE版本所能支持的最高模式来显示所浏览的网页内容,建议仅使用于测试页及其他非商用页面。

指定文件兼容性模式

要为你的网页指定文件模式,需要在你的网页中使用meta元素放入X-UA-Compatible http-equiv 标头。以下是指定为Emulate IE7 mode 兼容性之范例。

<html>

<head>

<!--Mimic Internet Explorer 7-->

<metahttp-equiv="X-UA-Compatible"content="IE=EmulateIE7"/>

<title>My Web 

Page</title>

</head>

<body>

<p>Content 

goes here.</p>

</body>

</html>

其内容随著指定的页面模式而更改,当要模拟IE7时,指定IE=EmulateIE7,指定IE=5
IE=7

IE=8来选择其中一种兼容性模式。你也可以指定IE=edge来指示IE8使用它支持的最高模式。

X-UA-compatible标头没有大小写之分。然而除了title元素及其他的meta元素之外,它必须出现在网页header节其它元素之前的位置,
http://hi.baidu.com/bigideaer/blog/item/f864244c3340fc5a500ffe54.html 设定网站服务器以指定预设兼容性模式

网站管理员可籍着为网站定义一个自订标头来为他们的网站预设一个特定的文件兼容性模式。这个特定的方法取决于你的网站服务器。举例来说,下列的web.config文件使Microsoft 

Internet Information Services (IIS)能定义一个自订标头以自动使用IE7 mode来编译所有网页。

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<system.webServer>

<httpProtocol>

<customHeaders>

<clear/>

<addname="X-UA-Compatible"value="IE=EmulateIE7"/>

</customHeaders>

</httpProtocol>

</system.webServer>

</configuration>

若你已于网站服务器指定了一个预设的文件兼容性模式,你可以在个别页面上指定不同的文件兼容性模式来盖过它。在网页中指定的模式优先权高于服务器中所指定的模式。

请查阅你的网站服务器关于指定自订标头的资讯,或看更多资料:

Implementing the META Switch on Apache
Implementing the META Switch on IIS

判定文件兼容性模式

要判定网页使用IE8浏览时的文件兼容性模式,使用document object(文档对象)的documentMode功能。例如在IE8的网址列输入下列程式码会显示目前页面的文件模式。

JavaScript:alert(document.documentMode);

documentMode功能会回传一个数值对应目前页面的文件兼容性模式,举例来说,若网页指定为支持IE8模式,documentMode便会回传值"8"。

在IE6引入的compatMode功能不支持在IE8引入的documentMode功能。目前使用compatMode建立的应用程式还能在IE8中作用,但它们必须更新为使用documentMode。

若你希望使用JavaScript判定一个文件的兼容性模式,引入下面范例的这段程式码可支持旧版本的IE。

engine=null;

if(window.navigator.appName=="Microsoft 

Internet Explorer")

{

//This is 

an IE browser. What mode is the engine in?

if(document.documentMode)//IE8

engine

=document.documentMode;

else//IE 

5-7

{

engine

=5;//Assume 

quirks mode unless proven otherwise

if(document.compatMode)

{

if(document.compatMode=="CSS1Compat")

engine

=7;//standards mode

}

}

//the 

engine variable now contains the document compatibility mode.

}

认识内容属性值

内容属性值在接收到异于先前叙述的数值时是具有弹性的。这能使你对于IE如何显示你的网页更有操控性。举例来说,你可以设定内容属性值为IE=7.5。当你这样做的时候,IE尝试将这个值转换为version vector并选择最接近的结果。在这个例子中,IE会将其设定为IE7 

mode。下面的范例显示该模式设定为其他值的状况。

<metahttp-equiv="X-UA-Compatible"content="IE=4">

<!--IE5 

mode-->

<metahttp-equiv="X-UA-Compatible"content="IE=7.5"><!--IE7 

mode-->

<metahttp-equiv="X-UA-Compatible"content="IE=100"><!--IE8 

mode-->

<metahttp-equiv="X-UA-Compatible"content="IE=a">

<!--IE5 

mode-->

<!--This header mimics Internet Explorer 7 and 

uses

<!DOCTYPE> 

to determine how to display the Web page-->

<metahttp-equiv="X-UA-Compatible"content="IE=EmulateIE7">

注意: 前面的范例显示单独的内容值。实际上IE只会执行网页中第一个X-UA-Compatible标头。

你也可以使用内容属性来指定复数的文件兼容性模式,这能帮助确保你的网页在未来的浏览器版本都能一致的显示。欲设定复数的文件模式,请设定内容属性以判别你想使用的模式。使用分号来分开各个模式。

如果一个特定版本的IE支持所要求的兼容性模式多于一种,将採用列于标头内容属性中最高的可用模式。你可以使用这个特性来排除特定的兼容性模式,虽然并不推荐这样做。举例来说,下列标头即会排除IE7 

mode。

<metahttp-equiv="X-UA-Compatible"content="IE=5; IE=8"/>

结论

兼容性对于网页设计师来说是非常重要的顾虑。虽然最好是可以建立一个完全不需依赖任何网页浏览器特性或功能的网站,有时候这是不可能实现的。文件兼容性模式便能将网页限制在某个特定版本的IE中。

使用X-UA-Compatible标头来指定你的页面支持的IE版本。使用document.documentMode判定页面的兼容性模式。

选择支持某个特定版本的IE,你可以确保你的页面在未来的浏览器版本中也能有显示的一致性
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: