如何在服务器上创建javascript列表器

时间:2017-02-25 16:03:25

标签: javascript

我想在javascript中创建这个场景:

我有一个主html pageA,其中包含带有子html pageB的iframe。 PageB包含使用Ajax将结果提交给服务器的js代码。

有没有办法在pageA的js代码中创建一个可以检测结果是否已提交的侦听器?

你能否告诉我实现这一结果的最佳方法?

致以最诚挚的问候,

4 个答案:

答案 0 :(得分:0)

我对iframe了解不多,但这听起来像使用网络套接字可以轻松搞定。

基本上,Web套接字将保持与服务器的实时连接,以便服务器可以向客户端通知发生的事情(例如,它们经常在聊天应用程序中使用)。这与通常的情况不同,即必须从客户发出请求。

因此,在您的示例中,PageA可以侦听Web套接字,当PageB发送请求时,服务器会通过Web套接字通知PageA。

答案 1 :(得分:0)

使用Window.postMessage API。

请检查一下。 https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage

答案 2 :(得分:0)

如果有一个domen,来自iframe:

window.parent.bla-BLA();

如果是不同的域名:

  1. 更改子iframe中的片段位置,为考试添加#exicutebla-bla()
  2. 检测父文档中的iframe位置,如果位置#exicutebla-bla()执行blba-bla()
  3. 或者 使用此:https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage

答案 3 :(得分:0)

var myForm= document.getElementById('myframeId').contentWindow
          .document.getElementById('myformid');
function detectSubmit() {
    alert("submit event fired");
}
myForm.addEventListener(myiframe , 'submit', detectSubmit, false);

注意这不会检测脚本触发提交。 如果iframe源是那样,可能会出现跨域问题。

由于问题含糊不清,这里有很多假设。