0

是否可以检测 iframe 内的输入更改事件?

代码需要是纯 Javascript 并且位于 iframe 之外。每次我在 iframe 内输入一个输入字段时,该函数都需要触发 - 这可能吗?

4

3 回答 3

0

试试这个代码:

window.onload = function() {
    var iframe = document.getElementsByTagName('iframe')[0];
    iframe.onload = function() {
        var input = iframe.contentDocument.getElementsByTagName('input')[0];
        input.addEventListener('keypress', function() {
            // wait until key is entered into input box
            setTimeout(function() {
                console.log(input.value);
            }, 10);
        }, false);
    };
};
于 2013-08-15T11:15:23.753 回答
0

如果您在同一个域上工作,则可以访问 iframe。

document.getElementById('yourIframe').contentWindow.document.findElementsByTagName('input')[0].onkeyup = function () {
    console.log('Input has changed.');
};

如果您在不同的域中,最好使用此处描述的 postMessage API:http ://davidwalsh.name/window-postmessage 此解决方案的结果是,您必须在 iframe 和父框架。

于 2013-08-15T11:16:56.460 回答
0
document.getElementById('rw_iframe').contentWindow.document.getElementById("fieldID").onchange = function () {
                
};

使用jquery改变当前上下文,只要你使用js给iframe元素附加一个事件就可以了

于 2022-01-07T09:36:35.940 回答