处理IE的“怪癖”

当HTML页面中嵌入javaScript代码时,本地运行时,在FireFox或Chrome运行没有任何问题,但在IE中运行时,在页面的顶部会会弹出一个黄色的警告条(取决于IE的版本)如下:

如果不单击那个黄条上的“允许阻止的内容(A)”那么javaScript代码便不会执行。只有单击允许之后,javaScript代码才会执行,效果如下:

我的IE浏览器还会弹出下面的警告框:

接着才会弹出JavaScript写的弹出框,如下:

HTML和JavaScript的代码如下:

  • 1-1 Example1.html页面的代码
  
  
  
  
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  2. <html xmlns="http://www.w3.org/1999/xhtml"> 
  3.     <head> 
  4.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5.         <title>处理IE的“怪癖”</title> 
  6.         <script src="alert.js"></script> 
  7.     </head> 
  8.     <body> 
  9.     这是页面的主题部分 
  10.     </body> 
  11. </html> 
  • 1-2 alert.js的代码
  •    
       
       
       
    1. alert("因为IE的版本问题,会弹出这个警告框"); 

当然这些情况只有在本地运行时才会出现,当发布到网上时是不会发生这种状况的。

但是如果你在IE中要花费大量的时间测试包含JavaScript的页面,这个警告框就很讨厌。每次都的明确的告诉浏览器允许页面运行JavaScript,未免也太麻烦了。为了解决这个问题,可以“欺骗”IE,让其认为是从Web服务器下载这个页面。那么就要在页面头部加一条所谓的“Web标志”,如下:

  • 1-3 有Web标志的Example1.html页面的代码
  •    
       
       
       
    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    2. <html xmlns="http://www.w3.org/1999/xhtml"> 
    3.     <head> 
    4.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    5.         <!-- saved form url=(0014)about:internet -->   
    6.         <!--以上是Web标志处理本地运行弹出的警告框--> 
    7.         <title>处理IE的“怪癖”</title> 
    8.         <script src="alert.js"></script> 
    9.     </head> 
    10.     <body> 
    11.     这是页面的主题部分 
    12.     </body> 
    13. </html> 
  • 注意:
    <!-- saved form url=(0014)about:internet -->   

要放在指定字符编码的标签后面。

IE看到这个注释后,就会像页面来自Web服务器一样处理它,不会再显示那个安全警告,直接执行JavaScript代码。而对于其他浏览器来说,这条注释跟普通的HTML注释没有区别,因此会被浏览器忽略。

你可能感兴趣的:(Web)