zoukankan      html  css  js  c++  java
  • FireFox与IE的兼容

    1. JavaScript对象的引用
    为了减少JavaScript对象的下载次数,Tasian只会在浏览器第一次请求应用时才会下载JavaScript文件。JavaScript对象只会驻留在Top级窗体,任何其它窗体需要引用到该JavaScript对象,只需要在引如下的方式进行引用就行:

    需要引用的窗体Button = top.Button //参阅MscrRouter.js

    而Button真正定义的JavaScript文件处于Top窗体,为了保证定义的对象格式能跨浏览器有效,Tasian使用了如下的格式进行对象定义:
    //定义对象名
    function MscrButton()
    {
    };
    //定义对象的方法
    MscrButton.onClick = function(strWin, strName)
    {
    MscrSystem.setAction(strWin, strName, "click", ""); 
    };

    请注意,在每个函数后面都有一个分号,这一点对于Tasian非常的重要。因为Tasian中所使用的JavaScript文件都是经过压缩的,并且将全局的JavaScript对象定义合成在一个JavaScript文件中。它的好处是减少网络流量、减少JavaScript对象对客户端资源的占用及减少对服务器请求的发送。

    2. 遮罩运用
    遮罩是指在一个对象上放置一个新的对象,新对象便是遮罩层。它能截获所有被遮罩对象的事件。

    Tasian所有的窗体都是在一个Iframe, 对于窗体拖动,在IE中能容易地进行事件捕捉处理,可以在非IE的浏览器中,当Mouse移到Iframe时,该Iframe将会最先处理该事件,使得对Iframe的拖动无效。所以Tasian会在Iframe上加上一个可以关开的遮罩层DIV元素,当要进行窗体对象拖动时,该层会打开,当拖动完成后,该层会关闭。

    3. 模态窗体Tasian有一个特殊的窗体,只有当它关闭时才能操作其它窗体内容。该窗体叫模态窗体。在JavaScript实现模拟窗体时,也是使用了一个DIV层,使得它始终于模态窗体的下一级,这样它就能截获所有对它父窗体的操作事件。

    4. 动态事件绑定
    在IE在动态事件绑定是通过attachEvent实现的,而在Mozilla系列是使用addEventListener。以下是代码摘自document.js两者的使用方法
    if (top.isIE)
    {
    oDB.setCapture();
    oDB.attachEvent("onmousemove", __resizingMe);
    oDB.attachEvent("onmouseup", __endResizeMe);
    }
    else
    {
    document.captureEvents(Event.MOUSEEVENT | Event.MOUSEUP); 
    document.addEventListener("mousemove", __resizingMe, false);
    document.addEventListener("mouseup", __endResizeMe, false);
    }

    ….
    if (top.isIE)
    {
    oDB.detachEvent("onmousemove", __resizingMe);
    oDB.detachEvent("onmouseup", __endResizeMe);
    oDB.releaseCapture();

    }
    else
    {
    document.releaseEvents(Event.MOUSEMOVE | Event.MOUSEUP);
    document.removeEventListener("mousemove", __resizingMe, false);
    document.removeEventListener("mouseup", __endResizeMe, false);
    }

    5. Style对象
    对于IE中HTML元素的Style对象其强大之处大家都了解,可是对于Mozilla中HTML的Style对象由于其相关介绍实在太少,所以大家都对它很陌生。其实Mozilla中的Style仍然很强大,IE能完成的功能,它大都能完成,只不过大家不了解罢了。比如IE中有filter属性用来设置渐近色,而Mozilla中可以用alpha实现。

    以下代码摘自MscrSystem.js
    if (!isIE)
    {

    oEnMsk.style.filter = "alpha(opacity = 35)";
    oEnMsk.style.MozOpacity = 0.35;

    }
    else
    {
    var strHTML = "
    strHTML += ">";

    oObj.parentNode.insertAdjacentHTML("BeforeEnd", strHTML);
    }

    当然Mozilla的Style属性远不止如此,它还可以设置DIV的外观:圆形、郁圆形等。
  • 相关阅读:
    二、线程的生命周期
    一、多线程基础
    Java中的三种代理模式(转载)
    SpringBoot+Thymeleaf实现国际化
    Centos7设置Jar包开机自启动
    Centos7安装及卸载RabbitMQ
    Nacos无法读取配置中心数据
    解决SSH连接Linux系统特别慢的问题
    KMP字符串匹配算法
    格雷厄姆扫描法解凸壳问题
  • 原文地址:https://www.cnblogs.com/danni5678/p/1164218.html
Copyright © 2011-2022 走看看