javascript编程规则

  1. javascript使用window对象的open()创建新的浏览器窗口
    window.open(url,name,feature)
    第一个参数是新窗口的URL地址,省略会弹出一个空白的浏览器窗口
    第二个参数是新窗口的名字。
    最后一个参数是以逗号分隔的字符串,内容是新窗口的各种属性。(尺寸和功能)
function popUp(winURL)
{
    window.open(winURL,"popup","width=320,height=480");//打开一个宽320,高480的新窗口popup

    }// JavaScript Document

因为在这个函数中已经对新窗口命名,所以放把新的URL地址传递给此函数时,这个函数将把新窗口的现有文档替换为新URL地址处的文档
2. javascript 伪协议
真协议:因特网计算机传输数据包的标准化通信机制
伪协议:非标准化的通信机制的统称

<a href="javascript:popUp('http://www.example.com/');">Example</a> //通过伪协议调用popUp()函数的具体做法
  1. 内嵌的事件处理函数
<a href="#" onclick="popUp('http://www.example.com/'); return false;">Example</a>
//#是未指向任何目标的空连接  return false使得链接不会真的被打开
  1. 分离javascript 把一个事件添加到HTML文档的某个元素上
<a href=http://www.example.com/ class=”popUp”>Example</a>
//javascript 代码预留出退路,让href是一个真是存在的URL地址,有效的链接
<a href="http://www.example.com" onclick="popUp('http://www.example.com'); return false;">Example</a>

//代码简化
<a href="http://www.example.com/" onclick="popUp(this.getAttribute('href')); return false;">Example</a>

//更简洁的代码
<a href="http://www.example.com/" onclick="popUp(this.href); return false;">Example</a>
//以onclick事件和popUp()函数为例
var links=document.getElementsByTagName("a");//取出所有的链接放在一个数组里
for(var i=0;i<links.length;i++){    //遍历数组
    if(links[i].className=="popup"){    //找到链接class等于popup,说明链接被点击时调用popUp函数    
        links[i].onclick=function(){            
            popUp(this.getAttribute("href"));//把链接的href传递给popUp()函数
            return false;  //取消这个链接的默认行为,不让链接吧访问者带离当前窗口
            }               
        }       
    }

这样还有一个问题,就是文件被加载时,javascript立即执行,会在html文档完全加载之前执行。应该让文档加载完毕后执行这个事件。
解决方法:
Document对象又是window对象的一个属性,当window对象触发onload事件时,document对象已经存在。

window.onload=prepareLinks;
function prepareLinks(){
var links=document.getElementsByTagName("a");//取出所有的链接放在一个数组里
for(var i=0;i<links.length;i++){    //遍历数组
        if(links[i].getAttribute("class")=="popup"){    //找到链接class等于popup,说明链接被点击时调用popUp函数    
        links[i].onclick=function(){            
            popUp(this.getAttribute("href"));//把链接的href传递给popUp()函数
            return false;  //取消这个链接的默认行为,不让链接吧访问者带离当前窗口
            }               
        }       
    }

function popUp(winURL)
{
    window.open(winURL,"popup","width=320,height=480");//打开一个宽320,高480的新窗口popup

    }// JavaScript Document
  1. 向后兼容 把javascript代码放在一个if语句中,支持则执行,否则不执行。
window.onload=prepareLinks;
function prepareLinks(){
    if(!document.getElemnetsByTagName)  return false;
    var links=document.getElementsByTagName("a");//取出所有的链接放在一个数组里
    for(var i=0;i<links.length;i++){    //遍历数组
        if(links[i].getAttribute("class")=="popup"){    //找到链接class等于popup,说明链接被点击时调用popUp函数    
        links[i].onclick=function(){            
            popUp(this.getAttribute("href"));//把链接的href传递给popUp()函数
            return false;  //取消这个链接的默认行为,不让链接吧访问者带离当前窗口
            }               
        }       
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值