rss· 投稿· 设为首页· 加入收藏· 繁體版
当前位置: 火魔网 » 程序开发 » Javascript

JS只打印页面的iframe内容和iframe刷新

方法一 
<a   href="javascript:top.frame名.window.print()">Print</a> 方法二 
<input onclick='document.frames("mxh").print()' type=button value=print_Iframe><br/> 
<iframe id=mxh src="d:\hhh.htm"></iframe> 方法三 
在打印页面时,可以通过正则或某个设计标识,只打印页面的部分内容。那么该如何只打印嵌入到此页面中框架的内容呢?本例学习一个只打印部分内容的新方法。 
【实现代码】 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head> 
<title>标题页</title> 
<body> 
<input onclick='prn()' type=button value=print_Ifram5.10e><br> 
<iframe id=myframe src="http://www.baidu.com"></iframe> 
<script> 
function prn() 

var win=window.open("about:blank")       //打开一个空页面 
win.moveTo(100,100)                           //移动到指定位置 
win.location=document.all.myframe.src        //指定页面的内容 
win.print()                                      //打印页面 

</script> 
</body> 
</html> 
【难点剖析】 
当用户单击“print_Iframe”按钮时,其实在后台会打开一个新页面,此页面的内容其实就是框架中的全部内容。然后在新页面中,调用“print”方法实现框架内容的打印,其实就是一个新页面的打印。 
JS刷新框架 先来看一个简单的例子: 
下面以三个页面分别命名为frame.html、top.html、bottom.html为例来具体说明如何做。 
frame.html 由上(top.html)下(bottom.html)两个页面组成,代码如下: 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<HEAD> 
<TITLE> frame </TITLE> 
</HEAD> 
<frameset rows="50%,50%"> 
<frame name=top src="top.html"> 
<frame name=button src="bottom.html"> 
</frameset> 
</HTML> 
现在假设top.html (即上面的页面) 有七个button来实现对bottom.html (即下面的页面) 的刷新,可以用以下七种语句,哪个好用自己看着办了。 
语句1. window.parent.frames[1].location.reload(); 
语句2. window.parent.frames.bottom.location.reload(); 
语句3. window.parent.frames["bottom"].location.reload(); 
语句4. window.parent.frames.item(1).location.reload(); 
语句5. window.parent.frames.item('bottom').location.reload(); 
语句6. window.parent.bottom.location.reload(); 
语句7. window.parent['bottom'].location.reload(); 
 
opener.parent.location=opener.parent.location.href
 
top.html 页面的代码如下: 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<HEAD> 
<TITLE> top.html </TITLE> 
</HEAD> 
<BODY> 
<input type=button value="刷新1" onclick="window.parent.frames[1].location.reload()"><br> 
<input type=button value="刷新2" onclick="window.parent.frames.bottom.location.reload()"><br> 
<input type=button value="刷新3" onclick="window.parent.frames['bottom'].location.reload()"><br> 
<input type=button value="刷新4" onclick="window.parent.frames.item(1).location.reload()"><br> 
<input type=button value="刷新5" onclick="window.parent.frames.item('bottom').location.reload()"><br> 
<input type=button value="刷新6" onclick="window.parent.bottom.location.reload()"><br> 
<input type=button value="刷新7" onclick="window.parent['bottom'].location.reload()"><br> 
</BODY> 
</HTML> 
下面是bottom.html页面源代码,为了证明下方页面的确被刷新了,在装载完页面弹出一个对话框。 
bottom.html 页面的代码如下: 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<HEAD> 
<TITLE> bottom.html </TITLE> 
</HEAD> 
<BODY onload="alert('我被加载了!')"> 
<h1>This is the content in button.html.</h1> 
</BODY> 
</HTML> 解释一下: 
1.window指代的是当前页面,例如对于此例它指的是top.html页面。 
2.parent指的是当前页面的父页面,也就是包含它的框架页面。例如对于此例它指的是framedemo.html。 
3.frames是window对象,是一个数组。代表着该框架内所有子页面。 
4.item是方法。返回数组里面的元素。 
5.如果子页面也是个框架页面,里面还是其它的子页面,那么上面的有些方法可能不行。 
附: 
Javascript刷新页面的几种方法: 
1   history.go(0) 
2   location.reload() 
3   location=location 
4   location.assign(location) 
5   document.execCommand('Refresh') 
6   window.navigate(location) 
7   location.replace(location) 
8   document.URL=location.href 
自动刷新页面的方法: 
1.页面自动刷新:把如下代码加入<head>区域中 
<meta http-equiv="refresh" content="20"> 
其中20指每隔20秒刷新一次页面. 
2.页面自动跳转:把如下代码加入<head>区域中 
<meta http-equiv="refresh" content="20;url=http://www.wyxg.com"> 
其中20指隔20秒后跳转到http://www.wyxg.com页面 
3.页面自动刷新js版 
<script language="JavaScript"> 
function myrefresh() 

      window.location.reload(); 

setTimeout('myrefresh()',1000); //指定1秒刷新一次 
</script> 
ASP.NET如何输出刷新父窗口脚本语句 
1. this.response.write("<script>opener.location.reload();</script>"); 
2. this.response.write("<script>opener.window.location.href = opener.window.location.href;</script>"); 
3. Response.Write("<script language=javascript>opener.window.navigate('你要刷新的页.asp');</script>") JS刷新框架的脚本语句 
//如何刷新包含该框架的页面用   
<script language=JavaScript> 
parent.location.reload(); 
</script> 
//子窗口刷新父窗口 
<script language=JavaScript> 
   self.opener.location.reload(); 
</script> 
( 或 <a href="javascript:opener.location.reload()">刷新</a>   ) 
//如何刷新另一个框架的页面用   
<script language=JavaScript> 
parent.另一FrameID.location.reload(); 
</script> 
如果想关闭窗口时刷新或者想开窗时刷新的话,在<body>中调用以下语句即可。 
<body onload="opener.location.reload()"> 开窗时刷新 
<body onUnload="opener.location.reload()"> 关闭时刷新 
<script language="javascript"> 
window.opener.document.location.reload() 
</script> JS+HTML 关于同级框架刷新问题 在一个网页当中,有两个同级框架 一个A 一个B 
我就想在A框架内运行某段JS或者其他代码之后 框架B响应刷新 
A框架中要不出现任何提示 
js就可以解决在A框架中调用脚本: 
<script> 
function reloadB(){ 
var B=window.parent.frames["B"]; 
b.location.href=b.location.href; 

</script> window.parent.document.GetElementByID('BframeID').location.reload(); 
顶一下
(0)
踩一下
(0)