链接:<a href="#">链接</a>
我想,当我点链接的时候,在页面中用JS新创建一个隐藏的iframe,然后设置连接的target指向到这个iframe。
可以吗?如何实现?同样,我也想当我点<button>的时候,也新建一个iframe,然后打开一个页面,target指向到iframe同样,我也想当我提交表单的时候submit,也新建一个iframe,把表单提交到隐藏的iframe里去。 如何实现?

解决方案 »

  1.   

    你这么做又什么意义么?
    直接用ajax来做这种事情我觉得比你这么做好多了,当然,你的想法是可能实现的。
      

  2.   

    html:
    <a href="x.asp" onClick="LinkClick(this);return false;">1</a>
    <input type=button value=2 onClick="ButtonClick('x.asp')">
    <form name='myForm' action='x.asp' onSubmit="FormSubmit(this)"></form>js:
    var myIframe = document.createElement("IFRAME");
    myIframe.name = "myIframe";
    function LinkClick(Link)
    {
      Link.target = myIframe.name;
      Link.click();
    }
    function ButtonClick(Href)
    {
      myIframe.src=Href;
    }
    function FormSubmit(Form)
    {
      Form.target = myIframe.name;
      Form.submit();
    }
      

  3.   

    改一下:
    html: 
    <a href="x.asp" onClick="LinkClick(this);return false;">1 </a> 
    <input type=button value=2 onClick="ButtonClick('x.asp')"> 
    <form name='myForm' action='x.asp' onSubmit="FormSubmit(this)"> </form> js: 
    var myIframe;
    window.onload=Init;
    function Init()
    {
      myIframe = document.createElement("IFRAME"); 
      myIframe.name = "myIframe"; 
      document.body.appendChild(myIframe);
    }
    function LinkClick(Link) 

      Link.target = myIframe.name; 
      Link.click(); 

    function ButtonClick(Href) 

      myIframe.src=Href; 

    function FormSubmit(Form) 

      Form.target = myIframe.name; 
      Form.submit(); 
    }
      

  4.   

    [b]我讨厌ajax,ajax是垃圾。搞的浏览器卡死。。进程太多。
    ajax太垃圾!
    [/b]
      

  5.   


    围观激动
    先去搞清楚什么是同步ajax什么是异步ajax,为什么同步ajax可能会导致卡死
      

  6.   

    oldmht,你错了。我不想在window.onload的时候加载,我想在用户点击之后再动态加载。如果按照你这样,我还不如直接在页面html里加iframe。我问这个问题是因为
    1,页面多一个iframe,客户端与服务器的响应就多了一个 ,好像有人说相当于访问人数还是在线人数多了一个2,iframe会使得浏览器比较卡。3,用户访问这个页面,不一定会去点那个连接,所以我想在当用户点链接的时候 再来加载iframe,减少消耗资源。
      

  7.   

    关于ajax
    oldmht,我跟你说,CSDN前几个月就是大量用ajax 没有掌握熟透,所以导致打开CSDN论坛非常卡。当然高配置电脑感觉不是很明显。但是大量用户还是中低配置的。CSDN 因AJAX导致非常卡,不是我一个人感觉到的。很多人都这样反应。
      

  8.   

    csdn卡是他写的代码不好
    你不想页面一开始出来一个iframe,你可以在函数里面创建iframe(利用document.createElement("IFRAME"))
    但是我要告诉你:
    1、window.onload的时候创建一个公用iframe或者页面里面直接写一个iframe更加节约资源
    这个iframe不指定src,是不会和服务器联系的
    2、1个iframe会是客户端浏览器卡?你是386么?我的手机369M的cpu,用几个iframe都没卡
    3、你在用户点击的时候再创建iframe也可以,但是要注意不要每次都创建出一个新的iframe
    改一下: 
    html: 
    <a href="x.asp" onClick="LinkClick(this);return false;">1 </a> 
    <input type=button value=2 onClick="ButtonClick('x.asp')"> 
    <form name='myForm' action='x.asp' onSubmit="FormSubmit(this)"> </form> js: 
    var myIframe; 
    function CreateIframe() 

      if (myIframe) return;
      myIframe = document.createElement("IFRAME"); 
      myIframe.name = "myIframe"; 
      document.body.appendChild(myIframe); 

    function LinkClick(Link) 

      CreateIframe();
      Link.target = myIframe.name; 
      Link.click(); 

    function ButtonClick(Href) 

      CreateIframe();
      myIframe.src=Href; 

    function FormSubmit(Form) 

      CreateIframe();
      Form.target = myIframe.name; 
      Form.submit(); 
    }
      

  9.   

    方法是很多的,每个方法的优缺点、适用面没搞清楚之前,最好不要太过于抱怨
    在提交表单方面,ajax比iframe要节约资源,iframe等于开了个新的窗口,新出来的对象多的要命(甚至包括ajax用的对象),另外ajax提交没有讨厌的声音、支持同步提交,提交至iframe的优点是可以上传文件,处理起来简单。等等等等
      

  10.   

    oldmht,
    我测试了你的代码,没用啊。变成新窗口打开了。