这里说的跨浏览器主要指的是IE及Firefox
首先推荐使用或阅读Prototype.js,其中解决了很多IE及firefox下的兼容问题。
然后就是“Javascript的IE和Firefox兼容性汇编”这篇文章。
这里主要记录是一些本人碰到,而上面又没有涉及的问题
if (typeof(domFrame.onreadystatechange) != "undefined") {
// ie
domFrame.onreadystatechange = notify;
} else {
// firefox
domFrame.onload = notify;
}
function notify() {
alert('iframe内容装载完成');
}
像上面那个例子,假如在B页面中写onload事件回调方法,在方法中取clientHeight,clientWidth返回值将不正确。
解决方法可以在A页面中来取值或设置
// A页面
// 将返回B页面的clentWidth, clientHeight
domFrame.contentWindow.document.body.clientWidth;
domFrame.contentWindow.document.body.clientHeight;
function getCurrentStyle(obj, prop) {
if (obj.currentStyle) {
return obj.currentStyle[prop];
} else if (window.getComputedStyle) {
prop = prop.replace(/([A-Z])/g, "-$1");
prop = prop.toLowerCase();
return window.getComputedStyle(obj, "").getPropertyValue();
}
return null;
}