我有一个测试网页,如果我在它的输入字段中按下一个键,它会发出警报:
<!doctype html>
<html>
<head>
<script type="text/javascript" src="jquery-1.9.1.min.js"></script>
<script>
$( document ).ready( function() {
$( '#foo' ).keydown( function() { alert( "debug" ); } );
});
</script>
</head>
<body>
<input id='foo' type='type'/>
</body>
</html>
我有这个 chrome 扩展,它可以修改输入文本并触发 keydown 事件:
$( document ).ready( function() {
window.setTimeout( function() {
$( '#foo' ).val( "foo" );
$( '#foo' ).keydown();
}, 2000 );
});
如果我安装扩展,2 秒后(如预期)文本被修改 - 但不显示警报,所以我可以建议keydown
事件没有从扩展沙箱传递到页面 javascript 处理程序。是否可以以某种方式修改我的代码,以便扩展程序可以模拟页面上的 javascript 可以看到的 keydown?我正在通过 chrome 扩展程序自动化第三方网站,其中一个输入需要keyup
检测值变化(我正在自动化的页面写得很糟糕 - 但我没有任何控制权,除了它的源代码)。