开发者

how can get response from <form target="IFrame">

There is a simple web page which sends request, handles & manipulated by a servlet class and send back the response text.while i want ajax type handleing the request at client side that is why i am giving the response target to a invsible iframe. *but i want to print success on the page after iframe gets the response *

<html> <body>
<form action="test" method="post" target="IFrame"> /*response target is iframe*/
       <input type="text" name="logic" />
       <input type="submit" value="Submit" />
</form>

<iframe name="IFrame" style="width:0; height:0">开发者_运维百科 </iframe>

</body>  </html>

i think this can be done using javascript or jquery, please guid me if you have any idea.


In the page which loads in the iframe, you will need to invoke a parent function.

<!-- This is the Parent.  Call it JSTest1.html -->
<html>
<head>
</head>
<body>
<script type="text/javascript">
    function parentAlert() {
        alert('hey there from the parent');
    }
</script>
I'm the parent
<iframe src="/JSTest2.html"></iframe>
</body>

<!-- this is the iframe html loaded.  Call it JSTest2.html-->
<html>
<head>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
    $(document).ready( function() {
        window.parent.parentAlert();
    });
</script>
In the Iframe.
</body>


To send a message from Iframe to Parent window page:

<script type="text/javascript">
  $(document).ready( function() {
    //Message part is two parts Event name and Data you want to send
    // Example message = "my_action,my_data"
    message = "my_action,my_data" 
    parent.postMessage(message, "*");
  });
</script>

At the parent window you can do the following to listen to this message and capture it:

var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
var eventer = window[eventMethod];
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";

eventer(messageEvent,function(e) {
  // Youe message which you send is captured here in e.data will split it on ',' to get the event and the data  
  message = e.data.split(',')[0]
  value = e.data.split(',')[1]
  if ( message === "my_action" ) {
      myParentFunction(value)
  }     
},false);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜