2016-05-13 35 views
2

我试图用POST和参数打开一个带有iframe的网页。 但做成后提交父页面重新加载和URL没开成的iframe:使用javascript将表单提交到iframe目标中

<head> 
    <title>iframe Example</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <style> 
    iframe { 
     display: block;  /* iframes are inline by default */ 
     background: #000; 
     border: none;   /* Reset default border */ 
     height: 90vh;  /* Viewport-relative units */ 
     width: 90vw; 
    } 
    </style> 
    </head> 
    <body> 
    <form id="myForm" method="post" action= "http://127.0.0.1/myWeb" target="myIframe"> 
    <input type = "hidden" name="param1" value="param1value"> 
    <input type = "hidden" name="param2" value= "param1value"> 
    </form> 
    <a href="" onClick="postLogin();" >Send to iframe</a><br /> 
    <script laguaje="javascript"> 
     function postLogin() { 
      var form = document.getElementById("myForm"); 
      form.submit(); 
     } 
    </script> 
    <iframe src="" name="myIframe" id="myIframe"> 
     <p>iframes are not supported by your browser.</p> 
    </iframe> 
    </body> 
    </html> 

回答

2

谁刷新页面的锚标记。您可以使用event.preventDefault()

更改您的锚标签添加事件参数。

<a href="" onClick="postLogin(event);" >Send to iframe</a> 

而在JavaScript函数postLogin添加preventDefault()事件方法:

function postLogin(event) { 
     var form = document.getElementById("myForm"); 
     form.submit(); 

     event.preventDefault(); 
    } 

编辑:

或者你可以使用一个<button>没有postLogin功能,而不是<a>

<form id="myForm" method="post" action= "http://127.0.0.1/myWeb" target="myIframe"> 
     <input type = "hidden" name="param1" value="param1value"> 
     <input type = "hidden" name="param2" value= "param1value"> 
     <button type="submit">Send to iframe</button> 
    </form> 
+0

谢谢您分享您的知识! – deimos1975