仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 510|回复: 6
打印 上一主题 下一主题

[学习教程] ASP网站制作之让FF和IE离得更近

[复制链接]
小魔女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:03:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
大家可以自己去看一看.可以说看得想呕吐.以前有次下了个动网来看.里面连基本内置函数的保护措施(函数没防御性)都没有.难怪经常补这个补那个了.可能现在.NET版会好点吧给FF增加了IE专有的属性和办法:









<scriptlanguage="JavaScript"type="Text/JavaScript">
<!--
if(window.Event){//修改Event的DOM
Event.prototype.__defineSetter__("returnValue",function(b){//
if(!b)this.preventDefault();
returnb;
});
Event.prototype.__defineSetter__("cancelBubble",function(b){//设置大概检索以后事务句柄的条理冒泡
if(b)this.stopPropagation();
returnb;
});
Event.prototype.__defineGetter__("srcElement",function(){
varnode=this.target;
while(node.nodeType!=1)node=node.parentNode;
returnnode;
});
Event.prototype.__defineGetter__("fromElement",function(){//前往鼠标移出的源节点
varnode;
if(this.type=="mou搜索引擎优化ver")
node=this.relatedTarget;
elseif(this.type=="mou搜索引擎优化ut")
node=this.target;
if(!node)return;
while(node.nodeType!=1)node=node.parentNode;
returnnode;
});
Event.prototype.__defineGetter__("toElement",function(){//前往鼠标移进的源节点
varnode;
if(this.type=="mou搜索引擎优化ut")
node=this.relatedTarget;
elseif(this.type=="mou搜索引擎优化ver")
node=this.target;
if(!node)return;
while(node.nodeType!=1)node=node.parentNode;
returnnode;
});
Event.prototype.__defineGetter__("offsetX",function(){
returnthis.layerX;
});
Event.prototype.__defineGetter__("offsetY",function(){
returnthis.layerY;
});
}
if(window.Document){//修改Document的DOM
}
if(window.Node){//修改Node的DOM
Node.prototype.replaceNode=function(Node){//交换指定节点
this.parentNode.replaceChild(Node,this);
}
Node.prototype.removeNode=function(removeChildren){//删除指定节点
if(removeChildren)
returnthis.parentNode.removeChild(this);
else{
varrange=document.createRange();
range.selectNodeContents(this);
returnthis.parentNode.replaceChild(range.extractContents(),this);
}
}
Node.prototype.swapNode=function(Node){//互换节点
varnextSibling=this.nextSibling;
varparentNode=this.parentNode;
node.parentNode.replaceChild(this,Node);
parentNode.insertBefore(node,nextSibling);
}
}
if(window.HTMLElement){
HTMLElement.prototype.__defineGetter__("all",function(){
vara=this.getElementsByTagName("*");
varnode=this;
a.tags=function(sTagName){
returnnode.getElementsByTagName(sTagName);
}
returna;
});
HTMLElement.prototype.__defineGetter__("parentElement",function(){
if(this.parentNode==this.ownerDocument)returnnull;
returnthis.parentNode;
});
HTMLElement.prototype.__defineGetter__("children",function(){
vartmp=[];
varj=0;
varn;
for(vari=0;i<this.childNodes.length;i++){
n=this.childNodes;
if(n.nodeType==1){
tmp[j++]=n;
if(n.name){
if(!tmp[n.name])
tmp[n.name]=[];
tmp[n.name][tmp[n.name].length]=n;
}
if(n.id)
tmp[n.id]=n;
}
}
returntmp;
});
HTMLElement.prototype.__defineGetter__("currentStyle",function(){
returnthis.ownerDocument.defaultView.getComputedStyle(this,null);
});
HTMLElement.prototype.__defineSetter__("outerHTML",function(sHTML){
varr=this.ownerDocument.createRange();
r.setStartBefore(this);
vardf=r.createContextualFragment(sHTML);
this.parentNode.replaceChild(df,this);
returnsHTML;
});
HTMLElement.prototype.__defineGetter__("outerHTML",function(){
varattr;
varattrs=this.attributes;
varstr="<"+this.tagName;
for(vari=0;i<attrs.length;i++){
attr=attrs;
if(attr.specified)
str+=""+attr.name+"=""+attr.value+""";
}
if(!this.canHaveChildren)
returnstr+">";
returnstr+">"+this.innerHTML+"</"+this.tagName+">";
});
HTMLElement.prototype.__defineGetter__("canHaveChildren",function(){
switch(this.tagName.toLowerCase()){
case"area":
case"base":
case"basefont":
case"col":
case"frame":
case"hr":
case"img":
case"br":
case"input":
case"isindex":
case"link":
case"meta":
case"param":
returnfalse;
}
returntrue;
});
HTMLElement.prototype.__defineSetter__("innerText",function(sText){
varparsedText=document.createTextNode(sText);
this.innerHTML=parsedText;
returnparsedText;
});
HTMLElement.prototype.__defineGetter__("innerText",function(){
varr=this.ownerDocument.createRange();
r.selectNodeContents(this);
returnr.toString();
});
HTMLElement.prototype.__defineSetter__("outerText",function(sText){
varparsedText=document.createTextNode(sText);
this.outerHTML=parsedText;
returnparsedText;
});
HTMLElement.prototype.__defineGetter__("outerText",function(){
varr=this.ownerDocument.createRange();
r.selectNodeContents(this);
returnr.toString();
});
HTMLElement.prototype.attachEvent=function(sType,fHandler){
varshortTypeName=sType.replace(/on/,"");
fHandler._ieEmuEventHandler=function(e){
window.event=e;
returnfHandler();
}
this.addEventListener(shortTypeName,fHandler._ieEmuEventHandler,false);
}
HTMLElement.prototype.detachEvent=function(sType,fHandler){
varshortTypeName=sType.replace(/on/,"");
if(typeof(fHandler._ieEmuEventHandler)=="function")
this.removeEventListener(shortTypeName,fHandler._ieEmuEventHandler,false);
else
this.removeEventListener(shortTypeName,fHandler,true);
}
HTMLElement.prototype.contains=function(Node){//是不是包括某节点
doif(Node==this)returntrue;
while(Node=Node.parentNode);
returnfalse;
}
HTMLElement.prototype.insertAdjacentElement=function(where,parsedNode){
switch(where){
case"beforeBegin":
this.parentNode.insertBefore(parsedNode,this);
break;
case"afterBegin":
this.insertBefore(parsedNode,this.firstChild);
break;
case"beforeEnd":
this.appendChild(parsedNode);
break;
case"afterEnd":
if(this.nextSibling)
this.parentNode.insertBefore(parsedNode,this.nextSibling);
else
this.parentNode.appendChild(parsedNode);
break;
}
}
HTMLElement.prototype.insertAdjacentHTML=function(where,htmlStr){
varr=this.ownerDocument.createRange();
r.setStartBefore(this);
varparsedHTML=r.createContextualFragment(htmlStr);
this.insertAdjacentElement(where,parsedHTML);
}
HTMLElement.prototype.insertAdjacentText=function(where,txtStr){
varparsedText=document.createTextNode(txtStr);
this.insertAdjacentElement(where,parsedText);
}
HTMLElement.prototype.attachEvent=function(sType,fHandler){
varshortTypeName=sType.replace(/on/,"");
fHandler._ieEmuEventHandler=function(e){
window.event=e;
returnfHandler();
}
this.addEventListener(shortTypeName,fHandler._ieEmuEventHandler,false);
}
HTMLElement.prototype.detachEvent=function(sType,fHandler){
varshortTypeName=sType.replace(/on/,"");
if(typeof(fHandler._ieEmuEventHandler)=="function")
this.removeEventListener(shortTypeName,fHandler._ieEmuEventHandler,false);
else
this.removeEventListener(shortTypeName,fHandler,true);
}
}
//-->
</script>
举个例子,在FF中利用currentStyle
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml"xml:lang="cn"lang="cn">
<head>
<styletype="text/CSS">
#a{width:100px;height:100px;background-color:yellow;}
</style>
<scripttype="text/javascript">
window.onload=function(){
HTMLElement.prototype.__defineGetter__("currentStyle",function(){returnthis.ownerDocument.defaultView.getComputedStyle(this,null);});
//下面一行代码就给一切的HTML元素增加了currentStyle属性
vara=document.getElementById("a");
alert("style中的width=""+a.style.width+""        currentStyle中的width=""+a.currentStyle.width+""");
}
</script>
</head><body>
<divid="a"></div>
</body>
</html>
SQLServer是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。
深爱那片海 该用户已被删除
沙发
发表于 2015-1-18 19:51:06 | 只看该作者
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
愤怒的大鸟 该用户已被删除
板凳
发表于 2015-1-26 21:23:20 | 只看该作者
Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
老尸 该用户已被删除
地板
发表于 2015-2-4 21:54:11 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
简单生活 该用户已被删除
5#
发表于 2015-2-10 21:40:27 | 只看该作者
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
金色的骷髅 该用户已被删除
6#
发表于 2015-3-1 15:57:24 | 只看该作者
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
飘灵儿 该用户已被删除
7#
发表于 2015-3-24 07:34:59 | 只看该作者
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 02:49

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表