【问题标题】:From Internet Explorer 6 to Google Chrome从 Internet Explorer 6 到 Google Chrome
【发布时间】:2015-10-10 16:11:04
【问题描述】:

我正在开发一个旧的 Web 应用程序(最初是为 Internet Explorer 6 开发的,现在已升级为 Internet Explorer 8),我需要确保在 Mozilla Firefox 和 Google Chrome 上的兼容性。我设法为 Mozilla Firefox 做到了,但在 Google Chrome 上更难,菜单不显示,我完全不知道为什么。我有这种代码(这里是主菜单,当你将鼠标悬停在菜单项上时开发的子菜单也有类似的代码):

if((document.all)||(window.sidebar)){
        var clic="";
        var style="";
        if(this[i].url!=""){
            style="cursor:pointer;";
            clic=" onclick='window.location=\""+this[i].url+"\"'";}
        A+="<div id='main"+i+"' style='position:absolute; left:"+X+"; top:"+Y+"; "+style+"width:130px"+/*this[i].larg+*/"; height:18px"+/*this.haut+*/"; background-color:"+colBarre+"; "+cssTexte+"; text-align:center' onmouseover='start("+i+", "+this[i].mnu+", "+X+", "+(Y+this.haut+1)+")'"+clic+">"+this[i].txt+"</div>";}
    if(document.layers){
        var txt=this[i].txt;
        if(this[i].url!=""){
            txt="<a href='"+this[i].url+"'>"+txt+"</a>";}
        A+="<layer name='main"+i+"' left="+X+" top="+Y+" width=130px"+/*this[i].larg+*/" height=18px"+/*this.haut+*/" bgcolor="+colBarre+"  onmouseover='start("+i+","+this[i].mnu+", "+X+", "+(Y+this.haut+1)+")'><center><span style='background-color:"+colBarre+cssTexte+"'>"+txt+"</span></center></layer>";}
    X+=this[i].larg+1;}

在网上查了很多资料,还是不明白document.layers、document.all、window.sidebar、window.getElementById和document.getElementById是什么,它们到底返回什么,window.getElementById和document有什么区别.getElementById 是。

总结一下:我需要document.layers、document.all、window.sidebar、window.getElementById和document.getElementById的信息。

【问题讨论】:

  • 只需插入带有兼容层的 Mootools 或 jQuery 1.x 并让库自己解决。如果您还不知道document.all 是什么,那么您将不会很快成功地做到这一点。
  • 我知道 document.all 来自 DOM API,但我不知道它是否已过时,以及它是否已过时,我可以替换它。我没有找到有关此的文档,所以我不知道 document.all 返回什么。
  • all 从来都不是 JavaScript 功能,而是 Microsoft 特有的 JScript 功能;另外:“all 不再受支持。从 Internet Explorer 11 开始,使用 getElementById。”见:msdn.microsoft.com/en-us/library/ms537434(v=vs.85).aspx 因为 IE8 也知道getElementBy… 函数,你应该使用那些
  • 一般来说,refer to Mozilla Development Network 是原始 W3C 规范的可读性更强的版本。正如此链接所示,document.all 已被弃用(确实正如@feeela 指出的那样,无论如何都不是规范的一部分)。
  • 没有不尊重,但如果你不知道document.getElementById 是什么,最好先把这个项目搁置一会,然后开始学习 JavaScript 的基础知识。

标签: javascript html google-chrome internet-explorer dom


【解决方案1】:

终于,我解决了我的问题。如果有人需要答案,这就是我所做的。 document.all 和 document.layers 在 Internet Explorer 6 中已经过时了。所以我使用 document.getElementById 而不是 document.all,并用 document.layer 删除了所有 if 条件。最后,我没有找到 document.all、window.sidebar 和 document.getElementById 返回的内容(编辑:此处为答案From Internet Explorer 6 to Google Chrome)但我的应用程序在 IE、MF 和 GC 上运行良好,这正是我所需要的,所以一切正常.

【讨论】:

    猜你喜欢
    • 2012-09-27
    • 2013-02-01
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 2016-05-23
    • 2012-02-09
    • 2023-03-07
    • 2015-08-17
    相关资源
    最近更新 更多