📄 libcrossbrowser.js
字号:
/* ========================================================================
<< Library for cross browser >>
JavaScript Library for Netscape Navigator 4.0+
and Internet Explorer 4.0+
Author : Shinichi Hagiwara
Type : library - free software
History:
1.0 : 10/18/1998 original
1.1 : 08/15/2000 remake for my book
2.0 : 05/13/2001 add procedure for NN6
2.1 : 05/20/2001 add the functions getLeftFromEvent,getTopFromEvent
2.2 : 05/27/2001 update the functions getLeftFromEvent,getTopFromEvent
2.3 : 06/03/2001 update the functions initDivPos,initDivSize
2.4 : 07/08/2001 update the functions external sourced layer for NN6( buggy :-D )
update the function createLayer,
add the function getDivForm
2.5 : 07/15/2001 add the function setDivVisibilities
2.6 : 08/26/2001 add the function setDivStyleAttribute
2.7 : 10/21/2001 update the functions. setDivBackgroundColor,setDivBackgroundImage
2.8 : 03/24/2002 support IE5.12(on mac OSX. but, buggy)
Copyright(C) 1998 - 2002 ShinSoft. All rights reserved.
________________________________________________________________________ */
/* =====================================================================
* 埲壓偺曄悢偼僽儔僂僓偺幆暿媦傃娭悢偺屳姺傪偲傞偨傔偺傕偺偱偡丅
* 傕偟丄偙偺僼傽僀儖傪奜晹僜乕僗( SCRIPT 僞僌撪偺 src懏惈 )偱巊梡偡傞
* 応崌偼丄埲壓偺曄悢傪 HTML 杮懱偺 SCRIPT 僞僌撪偵堏摦偟偰巊梡偟偰偔偩偝偄丅
* ( 奜晹僜乕僗撪偱捈愙掕媊偟偨曄悢抣偼 NN4 偱偼幚峴偝傟側偄応崌偑偁傝傑偡 )
________________________________________________________________________ */
// variables
// version of library
LCB_version = 2.8;
// _mac : true = macintosh, false = other os
_mac=navigator.userAgent.indexOf('Mac')!=-1;
// _ie512 : true = MSIE 5.12(mac), false = others
_ie512=navigator.userAgent.indexOf('MSIE 5.12')!=-1;
// _dom : kind of DOM.
// IE4 = 1, IE5+ = 2, NN4 = 3, NN6+ = 4, others = 0
_dom = document.all?(document.getElementById?2:1)
:(document.getElementById?4:(document.layers?3:0));
_createLayerNo = 0; // layer no.
/* ======================================================================
*偙偺僗僋儕僾僩傪奜晹僜乕僗偲偟偰巊梡偡傞応崌偼埲壓偺娭悢傪桳岠偵偟偰
* 巊梡偡傞嵟弶偵 onLoad 僀儀儞僩偱偙偺娭悢傪屇傃弌偟偰弶婜壔偟偰壓偝偄 */
function initCrossBrowserLib(){
_mac=navigator.userAgent.indexOf('Mac')!=-1;
_ie512=navigator.userAgent.indexOf('MSIE 5.12')!=-1;
_dom=document.all?(document.getElementById?2:1)
:(document.getElementById?4:(document.layers?3:0));
_createLayerNo=0;
}
initCrossBrowserLib();
/* _____________________________________________________________________ */
function getWindowWidth (){
if(_dom==4 || _dom==3) return window.innerWidth;
if(_dom==2 || _dom==1) return document.body.clientWidth;
return 0;
}
function getWindowHeight(){
if(_dom==4 || _dom==3) return window.innerHeight;
if(_dom==2 || _dom==1) return document.body.clientHeight;
return 0;
}
function getWinXOffset(){
if(_dom==4) return window.scrollX;
if(_dom==2 || _dom==1) return document.body.scrollLeft;
if(_dom==3) return window.pageXOffset;
return 0;
}
function getWinYOffset(){
if(_dom==4) return window.scrollY;
if(_dom==2 || _dom==1) return document.body.scrollTop;
if(_dom==3) return window.pageYOffset;
return 0;
}
function getDivFromName(nm){
if(_dom==4 || _dom==2) return document.getElementById(nm);
if(_dom==1) return document.all(nm);
if(_dom==3){
var s='';
for(var i=1; i<arguments.length; i++) s+='document.layers.'+arguments[i]+'.';
return eval(s+'document.layers.'+nm);
}
return null;
}
function getDivName(div){
if(_dom==4 || _dom==2 || _dom==1) return div.id;
if(_dom==3) return div.name;
return '';
}
function createLayer(left,top,width,height,parentDiv){
var s='';
if(arguments.length>5){
for(var i=5; i<arguments.length; i++) s+=arguments[i];
}
if(_dom==4){
var divName= '_js_layer_'+_createLayerNo; _createLayerNo++;
var pDiv =parentDiv?parentDiv:document.body;
var div =document.createElement('DIV');
div.id=divName;
div.setAttribute('style',
'position:absolute;left:'+left+';top:'+top
+(width >0?(';width:' +width ):'')
+(height>0?(';height:'+height):'')
+';visibility:hidden');
var range=document.createRange();
range.selectNodeContents(div);
range.collapse(true);
var cf=range.createContextualFragment(s);
div.appendChild(cf);
pDiv.appendChild(div);
return div;
}
if(_dom==2 || _dom==1){
var adj =(_mac&&!_ie512)?' ':'';
var divName= '_js_layer_'+_createLayerNo; _createLayerNo++;
var ha =(height>0)?(';height:'+height):'';
var pDiv =parentDiv?parentDiv:document.body;
pDiv.insertAdjacentHTML('BeforeEnd',
'<div id="'+divName
+'" style="position:absolute;left:'+left+';top:'+top
+(width >0?(';width:' +width ):';width:1')
+(height>0?(';height:'+height):'')
+';visibility:hidden;">'+s+'<\/div>'+adj);
return document.all(divName);
}
if(_dom==3){
var div=parentDiv?(new Layer(width,parentDiv)):(new Layer(width));
if(height>0) div.resizeTo(width,height);
div.moveTo(left,top);
if(s!=''){
div.document.open('text/html','replace');
div.document.write(s);
div.document.close();
}
return div;
}
return null;
}
function createExLayer(url,left,top,width,height,parentDiv){
if(_dom==4){
var divName= '_js_layer_'+_createLayerNo; _createLayerNo++;
var pDiv =parentDiv?parentDiv:document.body;
var div =document.createElement('IFRAME');
div.id=divName;
div.name=divName;
div.setAttribute('style',
'position:absolute;left:'+left+';top:'+top
+';width:'+width+(height>0?(';height:'+height):'')
+';visibility:hidden');
div.setAttribute('src',url);
div.setAttribute('frameborder',0);
div.setAttribute('scrolling','no');
pDiv.appendChild(div);
return div;
}
if(_dom==2 || _dom==1){
var adj=(_mac&&_ie512)?' ':'';
var bd, divName='_js_layer_'+_createLayerNo;
_createLayerNo++;
var ha=(height>0)?(';height:'+height):'';
if(arguments.length>5 && parentDiv)
bd=parentDiv;
else bd=document.body;
bd.insertAdjacentHTML('BeforeEnd',
'<div id="'+divName
+'" style="position:absolute;left:'+left+';top:'+top
+';width:'+width+ha+';visibility:hidden;">'
+'<iframe src="'+url+'" name="'+divName+'_if" '
+'width='+width+' height='+height
+'marginwidth=0 marginheight=0 '
+'scrolling="no" frameborder="no">'
+'<\/iframe>'
+'<\/div>'+adj);
return document.all(divName);
}
if(_dom==3){
var div=parentDiv?(new Layer(width,parentDiv)):(new Layer(width));
if(height>0) div.resizeTo(width,height);
div.moveTo(left,top);
div.load(url,width);
return div;
}
return null;
}
function getDivImage(div,imgName){
if(_dom==4) return document.images[imgName];
if(_dom==2 || _dom==1) return document.images(imgName);
if(_dom==3) return div.document.images[imgName];
return null;
}
function getDivForm(div,frmName){
if(_dom==4) return document.forms[frmName];
if(_dom==2 || _dom==1) return document.forms(frmName);
if(_dom==3) return div.document.forms[frmName];
return null;
}
function initDivPos(div){
if(_dom==4){
div.style.left=div.offsetLeft+'px';
div.style.top =div.offsetTop +'px';
}
else if(_dom==2 || _dom==1){
div.style.pixelLeft=div.offsetLeft;
div.style.pixelTop =div.offsetTop;
}
return div;
}
function getDivLeft(div){
if(_dom==4 || _dom==2) return div.offsetLeft;
if(_dom==1) return div.style.pixelLeft;
if(_dom==3) return div.left;
return 0;
}
function getDivTop(div){
if(_dom==4 || _dom==2) return div.offsetTop;
if(_dom==1) return div.style.pixelTop;
if(_dom==3) return div.top;
return 0;
}
function moveDivTo(div,left,top){
if(_dom==4){
div.style.left=left+'px';
div.style.top =top +'px';
return;
}
if(_dom==2 || _dom==1){
div.style.pixelLeft=left;
div.style.pixelTop =top;
return;
}
if(_dom==3){
div.moveTo(left,top);
return;
}
}
function moveDivBy(div,left,top){
if(_dom==4){
div.style.left=div.offsetLeft+left;
div.style.top =div.offsetTop +top;
return;
}
if(_dom==2){
div.style.pixelLeft=div.offsetLeft+left;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -