如何从弹出窗口监听提交事件到父页面跨域

时间:2017-11-11 12:09:44

标签: javascript jquery

我想从弹出窗口到父页面监听点击/提交事件。 下面的代码可以工作,如果父窗口和弹出窗口都属于同一个域,请说http://localhost(在代码中检查下面的注释行),但如果弹出窗口有不同的域名,则不会调用eventHandler方法,如echosign.com。 在下面的代码中,父窗口是localhost或弹出窗口以外的任何内容。

var newWindow;
function OpenPopup() {
    //newWindow = window.open("http://localhost:21930/Popup.htm", "PopupWindow", "width=300,height=100");
    newWindow = window.open("https://secure.echosign.com", "PopupWindow", "width=300,height=100");
    if (newWindow.addEventListener) {
        newWindow.addEventListener('click', eventHandler, false);
    } else {          
        newWindow.attachEvent('onclick', eventHandler);
    }
}

function eventHandler(e) {
    if (e.currentTarget.origin == "https://secure.echosign.com") {
        console.log("Event from Adobe Sign!", JSON.parse(e.data));           
    } else {
        console.log(e.currentTarget.origin);           
    }
}

1 个答案:

答案 0 :(得分:0)

如果您对两个域都有控制权,则可以将标头设置为接受其他域。

ID  |   DEVICEID    |  STATUS  |
--------------------------------
1   |   SN001       |  ENROLL  |
2   |   SN002       |  ENROLL  |
3   |   SN003       |  ENROLL  |
4   |   SN004       |  ENROLL  |