【发布时间】:2018-09-11 12:57:57
【问题描述】:
我有一个页面,我不想用我的数据填充它。 (自动填充镀铬扩展)。 我尝试使用 vanilla javascript 和 JQuery,但它们都不起作用。
这是我的代码:
$('#control_8 option[value=14401]').attr('selected', 'selected').trigger('change');
这里我使用 trigger(),所以在选择一个选项后,它会在它的子类别中加载所有项目。 当我在控制台中运行此代码时 - 它可以工作。但是,如果我从 chrome 扩展程序运行它,它会选择但触发器不起作用。 求救。
【问题讨论】:
-
chrome扩展什么时候执行代码? DOM 是否真的完全加载了?你可以在那里使用
$(document).ready()来延迟执行吗? -
是的。我也试过了,还加了setTimeout函数,还是不行……
-
我在前几天为我编写的扩展程序中遇到了类似的问题。 “更改”处理程序调用了一个函数,该函数进行了一些计算并将输出呈现给 dom。扩展无法访问该计算代码,因为扩展位于不同线程上的孤立世界中。 javascript 可以影响 html 并注入 css,但它不能篡改页面上的 javascript。这是你遇到的问题吗?
标签: javascript jquery google-chrome