Javascript jquerykeyup不能从代码中工作,但可以从chrome.console中工作
我制作了一个谷歌浏览器插件 任务(在sportingbet.com上):Javascript jquerykeyup不能从代码中工作,但可以从chrome.console中工作,javascript,jquery,google-chrome-extension,Javascript,Jquery,Google Chrome Extension,我制作了一个谷歌浏览器插件 任务(在sportingbet.com上): 下注 上篮 问题是: $(“.userItems input.amount”).val(110)->有效(但需要触发键控) $(“.userItems input.amount”).keyup()->不起作用,但当我在控制台中键入此代码时,它就起作用了 有什么区别吗?.keyup()不带参数只会触发任何附加到该输入的keyup事件的回调 .val(110)假设要做的就是设置输入元素的值,这就是为什么不触发事件的原因
- 下注
- 上篮
$(“.userItems input.amount”).val(110)代码>->有效(但需要触发键控)
$(“.userItems input.amount”).keyup()代码>->不起作用,但当我在控制台中键入此代码时,它就起作用了
.val(110).keyup()将同时执行这两个操作这非常有趣,但其中一个角度是创建模拟的关键点事件: 现在,为了真正解决您的问题,您可能希望在扩展隔离世界之外的页面javascript中运行代码。为此,我为您提供了一个漂亮的函数:
function runInPage(code) {
var script = document.createElement('script');
script.innerHTML = code;
document.documentElement.insertBefore(script);
}
然后尝试runInPage('$(“.userItems-input.amount”).keyup();'代码>
但在此之前,您可能需要加载jQuery,所以:
var jq = document.createElement('script');
jq.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';
document.documentElement.appendChild(jq);
这非常有趣,但其中一个角度是创建模拟关键事件:
现在,为了真正解决您的问题,您可能希望在扩展隔离世界之外的页面javascript中运行代码。为此,我为您提供了一个漂亮的函数:
function runInPage(code) {
var script = document.createElement('script');
script.innerHTML = code;
document.documentElement.insertBefore(script);
}
然后尝试runInPage('$(“.userItems-input.amount”).keyup();'代码>
但在此之前,您可能需要加载jQuery,所以:
var jq = document.createElement('script');
jq.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';
document.documentElement.appendChild(jq);
Chrome扩展是沙盒的,而Chrome控制台允许更大的灵活性。可能无法从扩展名中调用.keyup()。请阅读。jQuery代码可能位于内容脚本中,其全局上下文不等于页面的全局上下文。有关注入代码的正确方法,请参阅。Chrome扩展是沙盒的,而Chrome控制台允许更大的灵活性。可能无法从扩展名中调用.keyup()。请阅读。jQuery代码可能位于内容脚本中,其全局上下文不等于页面的全局上下文。有关注入代码的正确方法,请参阅。