You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

不修改子窗口源码,向其触发keyup事件失败问题排查

问题排查与解决

问题原因

父窗口和子窗口的jQuery是完全独立的实例——你在子窗口中用自身的jQuery绑定了keyup事件,但在父窗口中调用自身的$('#search', w.document).trigger()时,父窗口的jQuery无法识别子窗口jQuery绑定的事件处理函数,导致触发失败。


解决方案1:使用子窗口的jQuery实例操作

直接调用子窗口的$对象来操作元素和触发事件,确保和绑定事件的jQuery实例一致:

修改test.html中的脚本部分:

$(document).ready(function(){
    var w=window.open("search.html","_blank");
    w.onload = function(){
        setTimeout(() => {
            // 用子窗口的jQuery对象操作
            w.$('#search').val("test");
            w.$('#search').trigger("keyup");
        }, 5000);
    }
});

解决方案2:触发原生DOM事件

绕开jQuery实例差异,直接通过DOM API创建并触发原生keyup事件,jQuery绑定的事件会自动响应原生事件:

修改test.html中的脚本部分:

$(document).ready(function(){
    var w=window.open("search.html","_blank");
    w.onload = function(){
        setTimeout(() => {
            const searchInput = w.document.getElementById('search');
            searchInput.value = "test";
            // 创建原生keyup事件并触发
            const keyupEvent = new KeyboardEvent('keyup', {
                bubbles: true,
                cancelable: true
            });
            searchInput.dispatchEvent(keyupEvent);
        }, 5000);
    }
});

内容的提问来源于stack exchange,提问作者Nguyễn Ngô Duy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 22:42:40