编程语言
首页 > 编程语言> > javascript-Chrome和IE8与其他

javascript-Chrome和IE8与其他

作者:互联网

我正在创建一个网页,希望替换其中的< span>具有新的< span>元素元件.原始的< span>元素是(例如):

  <span class="green_link">;Abbreviation;The definition</span>

提供的字符串的形式为< separator>< string>< separator< string>.提供分隔符以确保第一个或第二个字符串中的任何特殊字符都不会引起解析困难.

onload事件处理程序针对< body>调用JavaScript函数.元件.它检测具有“ green_link”类的所有< span>.如果没有,则< span>存在,函数退出.否则,对于每个这样的< span&gt ;,该函数创建一个新的< span>.元件:

  <span class='revised_green_link'>
    <span class='abbreviation_alone'>
      Abbreviation
    </span>
    <span class='abbreviation_definition'>
      <a id='greenlink_1'></a>
      <a href='#greenlink_1' 
         style='text-decoration:none; 
                font-weight:bold;'>
        <span class='abbreviation'>
          Abbreviation
        </span>
        <span class='definition'>
          The definition
        </span>
      </a>
    </span>
  </span>

然后,该函数替换“ green_link”< span>.与新创建的“ revised_green_link”< span>.

使用test pageactual page对浏览器进行了测试.Firefox3.6.12,Opera 11.11和Safari 5.0.2显示了两个页面的预期效果. Chrome 12.0.742可以按预期显示测试页,但无法按预期显示实际页面. IE 8无法按预期显示任何一个页面.

我发现有趣的是,一旦Visual Studio 2008使用“在浏览器中查看”(即http://localhost:1291/BIODAB.html)显示网页,所有浏览器在localhost:port上将其按预期显示时都会显示该网页.

W3C标记验证服务已成功将这两个HTML文档检查为XHTML 1.0 Strict. W3C CSS验证服务在CSS级别2.1上成功验证了所有CSS(包括测试的和实际的).除jQuery JavaScript Library v1.4之外,所有JavaScript均通过JSLint传递,没有错误.

我不知道是什么原因导致了这种多样化的行为,请多加思考.

解决方法:

在IE8中,失败有两个部分.

首先是HTTP标头包含以下行:

 x-ua-compatible: IE=EmulateIE7

这使浏览器进入IE7模式.

第二部分是GreenLinkTest.js包含

getAttribute("class") 

在IE7中不起作用.有关更多详细信息,请参见getAttribute cannot return class in IE7?.

我看不到Chrome出现问题.

标签:css,javascript,xhtml,internet-explorer-8
来源: https://codeday.me/bug/20191208/2090509.html