网页引入js文件不兼容怎么解决

JavaScript09

网页引入js文件不兼容怎么解决,第1张

对于现阶段来说,使用HTML5标签可能遇到的最大问题就是如何在不支持新标签的浏览器中做恰当的处理。当我们在页面中使用HTML5元素时,可能会得到三种不同的结果。

结果1:标签被当作错误处理并被忽略。那么DOM构建的时候,就会当作这个标签不存在。

结果2:标签会被当作错误处理,并在DOM构建的时候依然会按照预期的代码进行创建,并且HTML标签会被构造成行内元素(也就是说虽然不能识别,但是代码里section标签依然会在dom中创建一个对应section节点,但是属于行内元素)。

结果3:标签被识别为HTML5标签,然后用DOM节点对其进行替换。DOM在构建的时候和预想的一致,并且合适的样式会应用到标签上(大部分情况下是块级元素)。

有一个具体的例子,大家思考一下下面的代码:

<div class="outer">

<section>

<h1>title</h1>

<p>text</p>

</section>

</div>

很多浏览器(比如Firefox 3.6和Safari4)解析的时候都会将div作为最外层的元素,然后div里面是一个识别不了的元素(section),它会在DOM中创建,并被作为一个行内元素存在。h1和p元素都是作为section元素的子节点。因为section在DOM中真实存在,所以也可以修改其样式。这种情况对应结果2。

IE9之前的版本会认为section标签是一个错误,并直接将其忽略,那么h1和p标签会被解析,然后成为div标签的子节点。</section>也会被认为是一个错误并直接跳过。在这些浏览器中实际有效的代码是这样的:

<div class="outer">

<h1>title</h1>

<p>text</p>

</div>

将IE进行降权处理,添加如下代码

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />

页面访问的时候全部以IE8处理