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的外观:圆形、郁圆形等。

转载于:https://www.cnblogs.com/danni5678/archive/2008/04/21/1164218.html

FireFox与IE的兼容相关推荐

  1. 解决Selenium与firefox浏览器版本不兼容问题

    解决Selenium与firefox浏览器版本不兼容问题 参考文章: (1)解决Selenium与firefox浏览器版本不兼容问题 (2)https://www.cnblogs.com/limxia ...

  2. IE与Firefox属性float不兼容使用clearboth

    IE与firefox中float不兼容问题解决办法: 在div的style中添加clear:both;属性(禁止环绕) clear:both;

  3. window.event.srcElement在Firefox IE下的兼容问题

    在 ie中处理事件直接使用window.event对象即可,但在firefox中,是没有 window.event对象的,函数需要使用事件的时候,需要在事件发生时把事件作为参数传递给函数,不象在ie中 ...

  4. IE与Firefox火狐的CSS兼容大全

    CSS对浏览器器的兼容性具有很高的价值,通常情况下IE和Firefox存在很大的解析差异,这里介绍一下兼容要点. 常见兼容问题: 1.DOCTYPE 影响 CSS 处理 2.FF: div 设置 ma ...

  5. firefox不兼容java,JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结

    今天测试代码时,发现不少IE可以运行的ajax,但在FF中报错.IE和Firefox(火狐)在JavaScript方面的不兼容及统一方法总结如下,需要的朋友可以看下,对于以后的代码书写一定要考虑到多浏 ...

  6. 火狐浏览器设置cookie失败_IE、谷歌Cookie记录失败,火狐成功(IE和Firefox下的Cookie兼容问题)...

    昨天项目迁移了测试服务器,之后奇怪的问题出现了. IE.谷歌无法登陆,火狐可以登陆. 这个项目先后部署过两个测试服务器.一台正式服务器,登陆都是正常的,这次却突然出现这种奇怪的问题,很是纠结. 通过查 ...

  7. FireFox and IE CSS兼容要点

    这一阵子要处理前台CSS,记录一下网上找的,具体从×××的没记住. 兼容性处理要点 1.DOCTYPE 影响 CSS 处理 2.FF: 设置 padding 后, div 会增加 height 和 w ...

  8. 史上最全的CSS hack方式一览(解决IE6-IE11,Firefox/Safari/Opera/Chrome兼容问题)

    做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况.基于此,某些情况我们会极不情愿的使用这个不太友好的方式来达到大家要求的页面表现.我个人是不太推荐使用hack的,要知道 ...

  9. selenium启动Firefox示例

    本文示例使用selenium启动Firefox,并将浏览器窗口最大化,在百度搜索框内输入"HelloWorld",最后点击搜索按钮. 源代码如下: package com.sele ...

最新文章

  1. ASP.NET网页显示LED字体
  2. PowerShell导出共存环境下的Exchange数据库列表
  3. Android 系统镜像: boot.img kernel.img ramdisk.img system.img userdata.img cache.img recovery.img
  4. tf.device()指定tensorflow运行的GPU或CPU设备
  5. 全部关于测试–第2部分
  6. Android 透明动画实现 详细概述
  7. 【干货】基于注意力机制的seq2seq网络
  8. vue UI框架比较
  9. c++ 图片验证码识别_图片验证码识别方法
  10. 我心中的微信小程序 韩俊强的博客
  11. webgis期末考试试题_WebGIS考试参考试题
  12. 日语学习之——五十音图、浊音半浊音、拗音、长音促音
  13. 升级IE7.0的唯一理由
  14. C语言 输入一个整数n,求出其阶乘
  15. HTML+CSS 焦点图设计(详细步骤)
  16. 区块链到底是不是骗局
  17. 计算机专业硕士学制,计算机研究生学制
  18. 笑话理解之Devil
  19. 冲破测试职业天花板--《笑傲测试》读后感
  20. 关于程序员这个职业缺点总结

热门文章

  1. 为什么开发者应该摒弃敏捷?(转)
  2. 【收集】13款Linux系统有
  3. python递归迭代_Python入门基础知识点(python迭代器和递归)
  4. ediplus 复制编辑一列_vi编辑器的使用详解
  5. 学习 launch-editor 源码整体架构,探究 vue-devtools「在编辑器中打开组件」功能实现原理...
  6. MySQL修改字符集
  7. 新手学习Java必需要知道的这些基本概念!
  8. 求解10的75次方问题
  9. MAVEN集成测试环境搭建
  10. Upgrade Hole puncher Mathematical Modeling