Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquerykeyup不能从代码中工作,但可以从chrome.console中工作_Javascript_Jquery_Google Chrome Extension - Fatal编程技术网

Javascript jquerykeyup不能从代码中工作,但可以从chrome.console中工作

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)假设要做的就是设置输入元素的值,这就是为什么不触发事件的原因

我制作了一个谷歌浏览器插件

任务(在sportingbet.com上):

  • 下注
  • 上篮
问题是:

  • $(“.userItems input.amount”).val(110)->有效(但需要触发键控)
  • $(“.userItems input.amount”).keyup()->不起作用,但当我在控制台中键入此代码时,它就起作用了
有什么区别吗?

.keyup()不带参数只会触发任何附加到该输入的keyup事件的回调

.val(110)假设要做的就是设置输入元素的值,这就是为什么不触发事件的原因

.val(110).keyup()将同时执行这两个操作。

。没有参数的keyup()将只触发任何附加到该输入的keyup事件的回调

.val(110)假设要做的就是设置输入元素的值,这就是为什么不触发事件的原因


.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代码可能位于内容脚本中,其全局上下文不等于页面的全局上下文。有关注入代码的正确方法,请参阅。