iframe实现Ajax刷新

iframe实现Ajax刷新

关键字: ajax/javascript相关
以前的项目中用到了Ajax,采用的是Ajaxanywhere和iframe实现的局部刷新,现在做的项目中也要用到Ajax,顺便想起了iframe的刷新,虽然iframe的刷新不是异步的,但效果也相当不错.在网上也看到许多帖子里也写到了,在这里写上两个例子,也算是总结了,但有的代码是网上的例子改的,因为有的有点问题我都改了过来,可以直接运行看到效果的.
例一iframe.html代码如下:
Html代码
  1. <html>  
  2. <head>  
  3. <title>Example of remote scripting in an IFRAME</title>  
  4. <script >  
  5. function tosay(){   
  6.      alert('this function is called from server.html');   
  7. }   
  8. function target(){   
  9.      var ifrm = document.getElementsByName('passframe')[0];   
  10.     ifrm = document.getElementById('passframe');   
  11.     ifrm.src = 'server.html';   
  12. }   
  13. </script>  
  14. </head>  
  15. <body>  
  16. <h1>Remote Scripting with an TFRAME </h1>  
  17. <iframe id="passframe" name="passframe" style="width:0px;height:0px;border:0px;" src="about:blank"></iframe>  
  18. <a href="javascript:target();">call the server</a>  
  19. <input type="button" value="button" src="server.html" onclick="target();">  
  20. </body>  
  21. </html>  
<html>
<head>
 <title>Example of remote scripting in an IFRAME</title>
<script >
 function tosay(){
  alert('this function is called from server.html');
 }
 function target(){
  var ifrm = document.getElementsByName('passframe')[0];
  ifrm = document.getElementById('passframe');
  ifrm.src = 'server.html';
 }
</script>
</head>
<body>
<h1>Remote Scripting with an TFRAME </h1>
<iframe id="passframe" name="passframe" style="width:0px;height:0px;border:0px;" src="about:blank"></iframe>
<a href="javascript:target();">call the server</a>
<input type="button" value="button" src="server.html" οnclick="target();">
</body>
</html>

server.html代码如下:
Html代码
  1. <html>  
  2. <head>  
  3. <title>the server</title>  
  4. </head>  
  5. <script>  
  6. //window.parent.tosay();   
  7. function init(){   
  8.      alert("server page init");   
  9.      parent.tosay();   
  10. }   
  11. </script>  
  12. <body onload="init();">  
  13. </body>  
  14. </html>  
<html>
<head>
<title>the server</title>
</head>
<script>
//window.parent.tosay();
function init(){
    alert("server page init");
    parent.tosay();
}
</script>
<body οnlοad="init();">
</body>
</html>


例二,a.html代码:
Html代码
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  2. <html>  
  3.     <head>  
  4.         <title>a.html</title>  
  5.   
  6.         <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
  7.         <meta http-equiv="description" content="this is my page">  
  8.         <meta http-equiv="content-type" content="text/html; charset=UTF-8">  
  9.   
  10.         <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->  
  11.         <script>   
  12.                
  13.              function changeDiv(){   
  14.                  var iframeObj = document.getElementById("workFrame");   
  15.                 iframeObj.src="b.html";   
  16.              }   
  17.              function changeFrom(){   
  18.                 document.formName.target="workFrame";   
  19.                  document.formName.submit();   
  20.              }   
  21. </script>  
  22.   
  23.     </head>  
  24.   
  25.     <body>  
  26.         <input type="button" name="" value="Change Div" onclick="changeDiv();">  
  27.         <input type="button" name="" value="Form div" onclick="changeFrom();">  
  28.         <a onclick="changeDiv();">changeDiv</a>  
  29.         <DIV id="divId">  
  30.              Main page Content   
  31.         </DIV>  
  32.         <Form id="formId" name="formName" action="b.html">  
  33.   
  34.         </Form>  
  35.         <iframe id="workFrame" width="0" height="0" src=""></iframe>  
  36.     </body>  
  37. </html>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <title>a.html</title>

  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="this is my page">
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">

  <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
  <script> 
   
   function changeDiv(){ 
    var iframeObj = document.getElementById("workFrame"); 
    iframeObj.src="b.html"; 
   } 
   function changeFrom(){ 
    document.formName.target="workFrame"; 
    document.formName.submit(); 
   } 
</script>

 </head>

 <body>
  <input type="button" name="" value="Change Div" οnclick="changeDiv();">
  <input type="button" name="" value="Form div" οnclick="changeFrom();">
  <a οnclick="changeDiv();">changeDiv</a>
  <DIV id="divId">
   Main page Content
  </DIV>
  <Form id="formId" name="formName" action="b.html">

  </Form>
  <iframe id="workFrame" width="0" height="0" src=""></iframe>
 </body>
</html>


b.html代码:
Html代码
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  2. <html>  
  3.     <head>  
  4.         <title>b.html</title>  
  5.   
  6.         <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
  7.         <meta http-equiv="description" content="this is my page">  
  8.         <meta http-equiv="content-type" content="text/html; charset=UTF-8">  
  9.   
  10.         <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->  
  11.         <script>   
  12.          function init(){   
  13.              try{   
  14.                  alert("page b");   
  15.                  var div = document.getElementById("divId");   
  16.                  var parentparent_div = parent.document.getElementById("divId");   
  17.                  if(div){   
  18.                     parent_div.innerHTML = div.innerHTML;   
  19.                  }      
  20.              }catch(e){   
  21.                  alert(e);   
  22.              }   
  23.          }   
  24. </script>   
  25.            
  26.     </head>  
  27.   
  28.     <body onload="init();">  
  29.         <DIV id="divId">  
  30.              iframe page result content .   
  31.         </DIV>  
  32.   
  33.     </body>  
  34. </html>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
使用 iframe 实现点击导航无刷新切换页面的基本思路是:将导航链接的目标页面放入 iframe ,点击导航链接时,只需要切换 iframe 的 src 属性即可实现刷新切换页面。 以下是实现步骤: 1. 在 HTML 文件添加一个 iframe 元素,设置其 id 和 name 属性为相同的值,以便在后面使用 JavaScript 操作 iframe。 2. 在导航链接添加 target 属性,将其值设置为 iframe 的 name 属性,以便点击链接时在 iframe 打开目标页面。 3. 使用 JavaScript 获取导航链接元素,为其添加点击事件监听器,在事件处理函数获取链接的 href 属性值,将其赋值给 iframe 的 src 属性,即可实现刷新切换页面。 代码示例: HTML 文件添加 iframe 元素: ```html <iframe id="myFrame" name="myFrame"></iframe> ``` 导航链接添加 target 属性: ```html <a href="page1.html" target="myFrame">Page 1</a> <a href="page2.html" target="myFrame">Page 2</a> <a href="page3.html" target="myFrame">Page 3</a> ``` JavaScript 代码实现: ```javascript const links = document.querySelectorAll('a[target="myFrame"]'); const iframe = document.getElementById('myFrame'); links.forEach(link => { link.addEventListener('click', event => { event.preventDefault(); // 阻止默认行为 const href = event.target.getAttribute('href'); iframe.setAttribute('src', href); }); }); ``` 注:使用 iframe 实现页面刷新切换存在一些问题,比如无法使用浏览器的前进和后退功能,也无法在 iframe 执行一些 JavaScript 代码。因此,建议使用其他技术实现页面刷新切换,比如 Ajax 和 History API。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黑师傅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值