您的位置:首页 > 其它

设为首页、添加到收藏夹、更改地址栏前小图标、按下回车键事件、关闭窗口

2012-04-23 17:43 381 查看



Js代码  



var url = window.location.href;  

var name = "javaeye";  

  

/** 

 * 设为首页 

 */  

function setHomepage(){  

 if(document.all){  

        document.body.style.behavior='url(#default#homepage)';  

        document.body.setHomePage(url);  

 }else if (window.sidebar){  

    if(window.netscape){  

         try{   

            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");   

         }catch (e){   

            alert( "该操作被浏览器拒绝,如果想启用该功能,请在地址栏内输入 about:config,然后将项 signed.applets.codebase_principal_support 值该为true" );   

            return false;  

         }  

    }  

      

    var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components. interfaces.nsIPrefBranch);  

    prefs.setCharPref('browser.startup.homepage',url);  

 }  

}  

/** 

 * 加入收藏夹 

 */  

function addCookie(){  

     if (document.all){  

           window.external.addFavorite(url,name);  

     }else if (window.sidebar){  

           window.sidebar.addPanel(name, url, "");  

     }  

}  

Html代码  



<!-- 地址栏前添加自定义小图标16*16 -->  

<link rel="shortcut icon" href="favicon.ico" />  

需要将favicon.ico图片放在WebRoot/favicon.ico目录下;  

Js代码  



按下回车键的事件  

document.onkeydown = function(e){  

    var ev = e || window.event;  

    if(ev.keyCode==13||ev.which==13){  

        //这里是按下回车键的事件  

    }  

}  

Js代码  



以下两种方式等效,都是单击事件调用closeWin()方法  

方式一:  

document.getElementById('exitSys').onclick = closeWin;  

或方式二:  

document.getElementById('exitSys').onclick = function(){  

    closeWin();  

}  

  

function closeWin(){//关闭窗口  

    window.opener = null;  

    window.open('','_self');  

    window.close();  

}  

注意:window.close()方法讲解:  

    对于用js代码打开的窗口,是没有关闭提示信息的;  

    但是对于原生窗口(即你直接打开的窗口),就会有提示信息,此时想没有提示信息,做法是:  

    window.opener = null;  

    window.open('','_self');  

    window.close();  

在firefox中,window.close()默认不能关闭用户直接打开的窗口(firefox中对于直接打开的窗口window.close是无效的)。 

有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe); 

self是当前窗口,自引用属性,是对当前window对象的引用,与window属性同义. 

opener是对打开当前窗口的window对象的引用,如果当前窗口被用户打开,则它的值为null. 

open动作完成后将opener设置为空,也就是window.opener=null,但是那也没说它有关闭窗口时不提示这么个用法啊。子窗口(通过js生成的窗口)是不需要把window.opener设置为空也可以无提示自动关闭的,但父窗口(原生窗口)必须有这一句。关于window.opener在无提示关闭窗口的作用,是不是可以这么解释:浏览器认为子窗口与父窗口的优先级是不同的,子窗口可以随意关闭而父窗口可能有比较重要的内容而需要用户同意才可以关闭;当window.opener=null的时候,父窗口失去了原来的优先级,被浏览器认为是一个普通的窗口,所以可以象子窗口一样不需要提示而自动关闭了。 

利用iframe来做无刷新上传: 

要实现文件上传,form必须设置几个属性: 

1.action:设为要处理数据的页面地址; 

2.method:设为"post"; 

3.enctype/encoding:必须设为"multipart/form-data",这里要注意的是在ie中用js修改form的enctype属性是没有效果的,只能修改encoding; 

4.把form的target设为iframe的name; 

iframe实现无刷新上传的原理:利用form的target属性,把数据提交到页面中一个(通常为隐藏的)iframe上。直观点说就是把“刷新”留给iframe。 

其实原理跟一般用iframe实现无刷新提交表单是一样的,只是这里换成是文件。 

这里关键就是把form的target设为iframe的name 

FORM元素的enctype属性指定了表单数据向服务器提交时所采用的编码类型,默认的缺省值是“application/x-www-form-urlencoded”。 

然而,在向服务器发送大量的文本、包含非ASCII字符的文本或二进制数据时这种编码方式效率很低。 

在文件上传时,所使用的编码类型应当是“multipart/form-data”,它既可以发送文本数据,也支持二进制数据上载。 

Browser端<form>表单的ENCTYPE属性值为multipart/form-data,它告诉我们传输的数据要用到多媒体传输协议,由于多媒体传输的都是大量的数据,所以规定上传文件必须是post方法,<input>的type属性必须是file
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息