Visit Shenzhen, Shenzhen China, Shenzhen Travel Guide

Shenzhen Universiade - Shenzhen 2011 Summer Universiade

常用链接

留言簿

Links

公布自己收集和自己写的JS公共库,相当于NET的Object对象,String对象,XMLHTTP处理,common类

//Browser Type
function getBrowserType()
{
    var BrowserType = "";
   if(navigator.userAgent.indexOf("MSIE")>0) {
        BrowserType="MSIE";
   }
   if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){
        BrowserType="Firefox";
   }
   if(isSafari=navigator.userAgent.indexOf("Safari")>0) {
        BrowserType="Safari";
   }
   if(isCamino=navigator.userAgent.indexOf("Camino")>0){
        BrowserType="Camino";
   }
   if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){
        BrowserType="Gecko";
   }
   return BrowserType;
}

function BindEvents(element,handle)
{
if(navigator.userAgent.indexOf("MSIE")>0)
{
document.getElementById('nearby').attachEvent(handle,func);
}
else if(navigator.userAgent.indexOf("Firefox")>0)
{
document.getElementById('nearby').addEventListener(handle,func,false);
}
}

function func()
{
alert("func");
}

//String Trim
String.prototype.trim = function() 
{
    var reExtraSpace = /^\s+(.*?)\s+$/;
    return this.replace(reExtraSpace, "$1");
}

String.prototype.replaceAll  = function(s1,s2)
{   
  return this.replace(new RegExp(s1,"gm"),s2);   
}



function getObject(elementId)
{
if (document.getElementById)
{
return document.getElementById(elementId);
}else if(document.all)
{
return document.all[elementId];
}else if(document.layers)
{
return document.layers[elementId];
}

// Create XMLHTTP Object
function vb()
{
var obj=null;
try
{
obj=new ActiveXObject("Microsoft.XMLHTTP");
return obj;
}
catch(e)
{
try
{
obj=window.XMLHttpRequest;
return obj;
}
catch(se)
{}
}

if(!obj&&typeof obj!="undefined")
{
obj=new XMLHttpRequest();
return obj;
}
}

function get_param(url, param)
{
var i;
var val;
if ((i = url.indexOf("?" + param + "=")) > -1 ||(i = url.indexOf("?" + param.toUpperCase() + "=")) > -1 ||  (i = url.indexOf("&" + param + "=")) > -1 ||
      (i = url.indexOf("&" + param.toUpperCase() + "=")) > -1) 
      {
val = url.substring(i + param.length + 2, url.length);
if ((i = val.indexOf("&")) > -1) 
{      
val = val.substring(0, i);
}
}
  return val;
}

function get_domain(url) 
{
   if (url) 
   {
domain = url.match(".?://(www\.)?([^/:]+)");
if (domain && domain.length >= 3) 
{
return domain[2] ? domain[2] : '';
}
   }
   return "";
}

function getQueryParameter(e,g)
{
var pos=e.indexOf("?");
if(pos>-1)
{
sSource=e.substring(pos+1);
var rgQueries=sSource.split("&");
var len=rgQueries.length;
for(var i=0;i<len;i++)
{
var sQuery=rgQueries[i];
if(sQuery)
{
if(sQuery.indexOf(g)==0)
return sQuery.substr(g.length+1);
}
}
}
return null;
}


function getObject(elementId)
{
if (document.getElementById)
{
return document.getElementById(elementId);
}else if(document.all)
{
return document.all[elementId];
}else if(document.layers)
{
return document.layers[elementId];

function getObjectsByTagAndClass(tag, cls)
var array = document.getElementsByTagName(tag);
var output = new Array(); 
var matches = 0; 
for(var i=0;i<array.length;i++) 
var parts = array[i].className.split(' '); 
for(var j=0;j<parts.length;j++) 
if(parts[j]==cls) 
output[matches++]=array[i];
return output; 


function getObjectsOfElementByTagAndClass(object, tag, cls, id) 
var output = new Array(); 
if(object) 
var array = object.getElementsByTagName(tag); 
var matches = 0; 
if (array != undefined && array != null) 
for(var i=0;i<array.length;i++) 
var parts = array[i].className.split(' '); 
for(var j=0;j<parts.length;j++) 
if(parts[j]==cls) 
if(id) 
if (array[i].id.indexOf(id) == 0)
output[matches++]=array[i]; 
else 
output[matches++]=array[i]; 
return output; 

function getTargetFromEvent(e)
if (!e) 
var e = window.event; 
if (e.target) 
var tg = e.target; 
else if (e.srcElement) 
var tg = e.srcElement; 
while (tg.nodeType != 1) 
tg = tg.parentNode; 
return tg; 

function getBrowserWidth() 
if(window.innerWidth) 
return window.innerWidth; 
else if(document.body.clientWidth) 
return document.body.clientWidth; 
else return -1; 

function getBrowserHeight() 
return (window.innerHeight?window.innerHeight:document.documentElement.clientHeight); 

function getBodyHeight() 
if(document.body.clientHeight) 
return document.body.clientHeight; 
else return -1; 

function getObjectHeight(i) 
return i.offsetHeight; 
}

function loadImages() 
if(document.images) 
var a = new Array(); 
a[0] = 'arrow_rt.png'; 
a[1] = 'inactivemenubg.png'; 
a[2] = 'mainmenuselected.jpg'; 
a[3] = 'close_window.jpg'; 
a[4] = 'detail_button_down.gif'; 
var image; 
var prefix = ''; 
if(useCdn) 
prefix = "http:/" + "/" + cdnServer; 
prefix = prefix + "/shared/core/1/images/"; 
for(var i=0;i<a.length;i++)
image=new Image(); 
image.src=prefix+a[i]; 
}

Shenzhen Universiade - Shenzhen 2011 Summer Universiade

0
0
(请您对文章做出评价)
« 上一篇:关于Google手机的11个疑问解答
» 下一篇:深圳印象

posted on 2009-03-03 18:13 haix 阅读(1196) 评论(4)  编辑 收藏 所属分类: Tech

评论

#1楼 2009-03-03 18:34 Gray Zhang      

我看到你很多方法是基于browserType来判断的,然而你判断browserType的方式却是有明显的问题的,就说OPERA,这该死的家伙是允许用户选择让他“模仿”成某种浏览器的,比如模仿成IE,那么你就会在user agent中发现MSIE,于是你的判断就产生了错误
这一点,在advanced javascript programming一书中有具体的说明,针对如何判断浏览器以及其版本,事实上完全可以考虑一下jquery中的源码
在browserType判断错误的基础上,你的BindEvent显然也会出错,那么是不是可以换一种角度去思考,不要使用browserType呢,如果我来写这个方法,我一定会这么写:
var dom = document.getElementById(element);
if (dom) {
dom.attachEvent ? dom.attachEvent(handle, func) : dom.addEventListener(handle, func);
}
不过我还怀疑你BindEvent方法中的func参数是哪来的
  回复  引用  查看    

#2楼 2009-03-03 18:59 xmq[未注册用户]

问下 你这个和pro 或者jq比 有啥优势?   回复  引用    

#3楼 2009-03-03 19:02 longlonglonglong[未注册用户]

天,全部暴露在window底下   回复  引用    

#4楼 2009-03-03 19:23 Ryan Gene      

加个namespace吧,呵呵   回复  引用  查看    

Shenzhen Universiade - Shenzhen 2011 Summer Universiade