`

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

 
阅读更多
<!-- 地址栏前添加自定义小图标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中打开。
分享到:
评论

相关推荐

    修改电脑的mac地址

    3. 在修改前确保记录下每台电脑原有的MAC地址,以便将来恢复。 4. 需要注意的是,修改MAC地址不会导致冲突,因为冲突通常发生在IP地址相同的情况下。因此,为了避免冲突,可以将这些电脑的IP地址设置为静态地址。 ...

    IE浏览器的这些小秘密你都知道么?.docx

    3. 快速查询打开过的页面数:在地址栏输入`javascript:alert(history.length)`,按下回车后,会弹出一个对话框,显示当前IE窗口已经打开的页面数量。 4. 查看网站更新时间:在你想了解的网站上,输入`javascript:...

    计算机超级技巧.doc

    1. **关闭多个窗口**:在同时打开多个窗口的情况下,按住 Shift 键,然后点击窗口右上角的关闭按钮,可以依次关闭所有已选中的窗口,这在需要快速关闭同类应用的所有窗口时非常有用。 2. **快速保存网页**:在保存...

    电脑初学者必需的60个电脑技巧.docx

    - `Windows + M`:最小化所有窗口,但再次按下此组合键无法恢复窗口。 - `Shift + F10`:打开所选项目的右键菜单。 - 按住`Ctrl + Shift`拖动文件:创建快捷方式。 #### 技巧7:创建关机和重启快捷方式 1. 在桌面...

    EXCEL基本功能介绍教程文件.pdf

    标题栏是EXCEL窗口的最上端,包含控制菜单图标、文档名称和最小化按钮、最大化按钮或还原按钮、关闭按钮等部分。控制菜单图标用于对整个EXCEL窗口进行最大化、最小化、关闭等操作。文档名称显示当前文档的名称。最小...

    怎样查看电脑的物理地址(MAC地址).pdf

    将鼠标指针悬停在“连接状态”图标上,会弹出一个包含MAC地址的详细信息小窗口。 这两种方法都允许用户轻松地获取到电脑的MAC地址,从而进行网络配置或解决网络相关问题。在实际应用中,MAC地址有时会被用来进行...

    windows 小常识 适用于 xp 和2k

    - 快速重新启动:关闭前按Shift(不适用于2k、xp) - 彻底删除:Shift+Del - 阻止光盘自动运行:按Shift - Ctrl+Esc:相当于"开始"或Win键 - Ctrl+Home:光标移动到文本编辑区开头 - Ctrl+End:光标移动到文本...

    计算机 电脑使用的小窍门

    例如,在地址栏输入`about:abc`后按回车键,可以看到相应的测试效果。 #### 二、Windows快捷键详解 - **常用快捷键**: - `Win + M`:显示桌面。 - `Win + Pause`:打开系统属性。 - `Shift + Del`:彻底删除...

    电脑 技巧电脑 技巧电脑 技巧

    1. **多窗口关闭技巧**:如果你同时打开了多个窗口,可以通过按住`Shift`键,然后点击窗口右上角的关闭图标,来一次性关闭多个窗口。 2. **快速保存网页**:在保存网页前,可以按下`ESC`键或者选择“脱机工作”,...

    2011年职称计算机考试题库完整.doc

    33. 删除文件:在键盘上按下Delete键删除“Help”文件,再按Alt+F4关闭窗口。 34. 设置文件夹视图:在“文件夹选项”中,选择“经典视图”,使每个文件夹可以在不同窗口中打开。 35. 设置标题按钮大小:在“显示...

    Drrnai全国专业技术人员计算机应用能力考试windowsXP题库版.docx

    - 地址栏可以用来快速访问网址,通过输入地址并转到或回车确认。 - 改变任务栏高度,拖动其边界即可,显示或隐藏快速启动区的标题。 - 创建新的工具栏,如“新建文件夹”,并设置显示大图标。 - 链接栏的显示...

    word2021中怎么修改默认样式.docx

    - 在地址栏中输入路径 `%appdata%\microsoft\templates`,并按下回车键。这将打开包含Word模板文件的文件夹。 3. **删除Normal.dotm文件**: - 在此文件夹中,找到名为“Normal.dotm”的文件,这是Word的主模板...

    全国专业技术人员计算机应用能力考试windowsXP题库版.doc

    6. 打开地址栏并访问网址:右键点击任务栏,选择“工具栏”-&gt;“地址”,输入网址后转到或按回车键。 7. 显示快速启动区标题并调整任务栏高度:右键点击快速启动区,选择“显示标题”,拖动任务栏上边缘调整高度。 8....

    职称计算机考题秘籍XP(20220102112725).pdf

    - 在任务栏上显示地址栏并访问网页,右键任务栏,启用地址栏,输入网址后按回车键或点击“转到”。 - 设置任务栏保持在其他窗口前面并锁定,右键任务栏,选择“属性”,勾选相应选项。 7. **开始菜单定制**: - ...

    北京国企职称计算机考试题库.pdf

    - 利用地址栏访问网址:在任务栏的地址栏输入网址,按回车键或点击"转到"访问。 - 改变任务栏的大小和样式:拖动任务栏边缘调整大小,右键点击快速启动区选择"显示标题",以及更改图标的大小。 - 管理任务栏的...

    职称计算机考试XP题库.pdf

    - 显示地址栏并打开网址:右击任务栏,选择"工具栏" -&gt; "地址",输入网址并转到。 - 调整快速启动区和任务栏样式:可以显示标题,调整高度,创建新工具栏,显示大图标,隐藏文字,关闭程序组等。 - 添加快捷方式...

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

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

    电脑硬件与软件5[借鉴].pdf

    1. **窗口管理**:在多窗口环境下,可以通过按住Shift键并点击窗口右上角的关闭按钮来依次关闭多个窗口,避免反复操作。 2. **网页保存**:在保存网页时,按下ESC键或设置为脱机工作,可以加快保存速度。 3. **...

    计算机应用基础培训.pptx

    F1通常用于帮助,大小写转换通过Caps Lock键,退格键(Backspace)用于删除光标左边字符,Shift键用于输入大写字母或特殊符号,Ctrl键配合其他键实现特殊功能,Esc键用于退出当前操作,Tab键用于制表定位,回车键...

Global site tag (gtag.js) - Google Analytics