`

更改地址栏前小图标、按下回车键事件、关闭窗口

 
阅读更多
<!-- 地址栏前添加自定义小图标16*16 -->
<link rel="shortcut icon" href="favicon.ico" />
需要将favicon.ico图片放在WebRoot/favicon.ico目录下;

按下回车键的事件
document.onkeydown = function(e){
	var ev = e || window.event;
	if(ev.keyCode==13||ev.which==13){
	    //这里是按下回车键的事件
	}
}

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自适应实现的一种方式:
<div id="main" style="height:500px;width:998px;">
      <iframe name="mainFrame" id="mainFrame" width="100%" height="100%" frameborder="0" onload="this.parentNode.style.height=(200 + 'px');"></iframe>
</div>
其中200是调整后iframe的最小高度,这个值根据实际情况调整。
总结:
1.iframe设置:width为100%  height为100%;
2.外层div用px控制(实际控制的是div,通过控制div,由于里面iframe宽与高都是100%,所以iframe会自适应的);
也就是说,在实际的控制中,只要控制外层div的高与宽就行了,里面的iframe会随着外层div高宽的改变而自适应改变。
注意:在除ie6以外的其它浏览器中这样处理是可以的,但是ie6中不仅要控制外层div的高宽,还要控制iframe的高宽。下面是相关关键代码:
/**
 * iframe高度自适应
 * @param iframeObj :iframe DOM对象
 * @param divObj : div DOM对象
 * @return 设置的高度
 */
function iframeAdapt(iframeObj, divObj){
	var bHeight = iframeObj.contentWindow.document.body.scrollHeight;
	var dHeight = iframeObj.contentWindow.document.documentElement.scrollHeight;
	var height = Math.max(bHeight, dHeight);
	if(navigator.userAgent.indexOf("MSIE 6.0")>0){//IE6下还要控制iframe的高宽
		iframeObj.style.height = height + 'px';
	}
	divObj.style.height = height + 'px';
	return height;
}
/**
 * 检查iframe是否加载完成
 */
function checkIframeComplete(){
	var state = null;
	//如果有多层次的iframe嵌套,只要检查最外层的iframe是否加载完成就行了
	//最外层的iframe加载完成了,则里面的iframe也一定加载完成了!
	var ifrObj = window.top.window.document.getElementById('iframeId');
	if(ifrObj.contentWindow.document.readyState){
		try{
			state = ifrObj.contentWindow.document.readyState;
		}catch(e){
			state = null;
		}
		if(state == "complete" || !state){// loading,interactive,complete
			doXXX(); //这里是iframe加载完成后 要执行的操作
			return;
		}
		window.setTimeout(function(){ //定时检查
			checkIframeComplete();
		}, 10);
	}
}

iframe自适应另一讲解:http://bbs.blueidea.com/thread-2902341-1-1.html

利用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
注意:从后台返回给iframe的值最好要全是英文字符(包括英文字母、数字)!如果含有中文字符会有各种浏览器兼容问题!切忌不要返回中文!

FORM元素的enctype属性指定了表单数据向服务器提交时所采用的编码类型,默认的缺省值是“application/x-www-form-urlencoded”。
然而,在向服务器发送大量的文本、包含非ASCII字符的文本或二进制数据时这种编码方式效率很低。
在文件上传时,所使用的编码类型应当是“multipart/form-data”,它既可以发送文本数据,也支持二进制数据上载。
Browser端<form>表单的ENCTYPE属性值为multipart/form-data,它告诉我们传输的数据要用到多媒体传输协议,由于多媒体传输的都是大量的数据,所以规定上传文件必须是post方法,<input>的type属性必须是file

前后台传递参数常用的方式
前后台传递参数常用的方式有四种:form.submit()提交方式、a标签href方式、iframe.src提交方式、ajax提交方式;
form提交方式:
<form id="searchForm" action="${_ctPath}/xxx_list.do" method="post">
<input type="text" name="inboxDto.sendNum" value="${inboxDto.sendNum}"/>
<input type="text" name="dddd" value="${dddd}"/>
<input type="text" name="inboxDto.startTime" value="<fmt:formatDate value="${inboxDto.startTime}" type="both" pattern="yyyy-MM-dd"/>"/>
<a href="javascript:document.getElementById('searchForm').submit();">提交</a>
</form>

a标签href方式:
<a href="${_ctPath}/xxx_list.do">
如果传参可以这样:<a href="${_ctPath}/xxx_list.do?inboxDto.sendNum=111&dddd=2222">

iframe.src提交方式:
var ifrObj = document.getElementById(iframeId);
ifrObj.src = "${_ctPath}/xxx_list.do";
如果传参可以这样:ifrObj.src = "${_ctPath}/xxx_list.do?inboxDto.sendNum=111&dddd=2222";

ajax提交方式:
用我封装的ajax工具类发送请求,其中data配置如下:
data:"inboxDto.sendNum=111&dddd=2222"

相同点:
1.都可以通过request.getParameter获取
2.都可以将参数封装为dto对象
在后台请求处理方法中的测试代码,运行结果证明:可以获取数据。
System.out.println(request.getParameter("inboxDto.sendNum"));
System.out.println(request.getParameter("dddd"));
System.out.println(inboxDto.getSendNum());

不同点:
在struts2中,不同方式的请求提交到struts2的处理方法时,当return一个逻辑页面时,例如:
public String list(){
    //something to do...
    return "xxx_list";
}
form与a方式时,form标签与a标签的target属性所指向的页面可以正常跳转到逻辑页面;
iframe.src方式时,该iframe可以正常跳转到逻辑页面;
ajax方式时,失效,不行(1.可能行,但是我还没有找到解决方法;2.此时ajax返回的结果rs是要跳转的页面)

target属性:
_self:默认值,在原页面打开。
_blank:在新窗口打开。
_parent:在父窗口打开。
_top:在顶级窗口打开。
frameName:在指定iframe中打开。
分享到:
评论

相关推荐

    55种网页小技巧 ---- 下载无需扣分,具有一定收藏价值

    IE地址栏前换成自己的图标 .html TEXTAREA自适应文字行数的多少.html title显示日期.html 不准粘贴.html 不能为空和邮件地址的约束.html 不要滚动条.html 光标是停在文本框文字的最后.html 关闭输入法.html ...

    Visual C++编程技巧精选500例.pdf

    277 如何清除IE地址栏历史记录? 278 如何添加IE浏览器收藏夹内容? 279 如何使用默认浏览器打开指定网页? 280 如何清除上次登录用户历史记录? 281 如何强制操作系统只执行规定的程序? 282 如何在系统“控制面板/添加...

    VC++常用功能实例

    相关网站 7 设置窗口最大最小 7 ...更改窗口控件的能动和不能动(以按钮控件为例) 120 窗口响应键盘事件 120 密码框输入受保护 121 最高窗口的实现 122 实现窗口动态写入汉字和改变汉字颜色形状 123

    VC++常用的共用函数100多页

    相关网站 7 设置窗口最大最小 7 ...更改窗口控件的能动和不能动(以按钮控件为例) 120 窗口响应键盘事件 120 密码框输入受保护 121 最高窗口的实现 122 实现窗口动态写入汉字和改变汉字颜色形状 123

    易语言程序免安装版下载

    修改高级表格支持库,解决在鼠标按下和抬起之间收到时钟周期事件的情况下,无法收到“被单击”事件的BUG。 3. 修改扩展界面支持库三,解决单击卷帘菜单后导致日期框不能弹出下拉窗口的BUG。 4. 修改XP风格支持库...

    JavaScript网页特效范例宝典源码

    实例060 按下回车键时自动切换焦点 103 2.2 下拉列表/菜单 104 实例061 获取下拉列表/菜单的值 104 实例062 遍历多选择下拉列表 105 实例063 在下拉列表中进行多选移除 106 实例064 将数组中的数据添加到下拉菜单中 ...

    计算机应用技术(实用手册)

    计算机应用技术 实用手册 Xnllz 2011.7.29 ...有时候在系统的任务栏你见不到小喇叭有可能在这里被关闭了,即:[DISABLED],遇到这种情况可从新进入COMS把此项打开即可,即:[ENABLED]。 SATA...

    多媒体教室

    屏幕右下角有一小图标,当教师机界面隐藏时可双击该图标,屏幕就会显示教师机主界面。也可以利用屏幕最上方的弹出式工具条中的窗口按钮来恢复教师机主界面(见下节)。 4.3右键菜单 教师机启动后,在班级模型区可...

    IIS6.0 IIS,互联网信息服务

    效果的测试:打开IE浏览器,在地址栏输入“192.168.0.1”之后再按回车键,此时就能够调出你自己网页的首页,则说明设置成功! 注:具体不同的电脑会有不同的选项名称,但大体上还是可以找到了(多试一下)。 二、...

    delphi 开发经验技巧宝典源码

    0253 如何在不使用标题栏的情况下移动窗体 170 0254 使窗体标题栏文字右对齐 170 0255 在窗体标题栏上添加按钮 171 0256 取消窗体标题栏的关闭按钮 172 0257 如何实现闪动的标题栏文字 172 0258 怎样动态...

    delphi 开发经验技巧宝典源码06

    0253 如何在不使用标题栏的情况下移动窗体 170 0254 使窗体标题栏文字右对齐 170 0255 在窗体标题栏上添加按钮 171 0256 取消窗体标题栏的关闭按钮 172 0257 如何实现闪动的标题栏文字 172 0258 怎样动态...

    北语20春《计算机基础》作业4.txt

    可任意加空格,不可以任意加回车键 C.不任意加空格、回车键 D.不可以任意加空格,但可以任意加回车键 答案:C 24.Internet采用的通信协议是( )。 A.SMTP B.FTP C.POP3 D.TCP/IP 答案:D 25.插入点位于某段落的某个...

    C#程序开发范例宝典(第2版).part13

    实例097 按回车键焦点在控件中移动的录入窗口 140 实例098 程序运行时拖动控件 141 实例099 控件得到焦点时变色 142 实例100 控件的输入限制 143 2.12 特殊控件 144 实例101 为控件制作立体效果 144 实例102 ...

    C#程序开发范例宝典(第2版).part08

    实例097 按回车键焦点在控件中移动的录入窗口 140 实例098 程序运行时拖动控件 141 实例099 控件得到焦点时变色 142 实例100 控件的输入限制 143 2.12 特殊控件 144 实例101 为控件制作立体效果 144 实例102 ...

Global site tag (gtag.js) - Google Analytics