Chrome扩展程序/根据弹出窗口中的选择执行不同的内容脚本.html
Chrome-extension / Execute different content scripts depending on selection in popup.html
我需要使用以下行为进行扩展。弹出窗口.html应该有两个按钮或两个单选按钮(按钮更容易,因为我不必像收音机那样保存所选值(,并且根据用户选择,我必须执行一个或另一个脚本。此外,在加载其中一个脚本并且用户想要使用另一个脚本后,我必须重新加载页面才能"卸载"前一个脚本。谁能给我一种方法来实现这一点?
目前我有这个:
弹出窗口.js
$(document).ready(function() {
var firstTime = true;
$("input[name='method']").change(function() {
if($(this).val() === "events") {
if(!firstTime) {
chrome.tabs.reload(null, null, function(){
chrome.tabs.executeScript(null, {file: "content_events.js", runAt: "document_end"});
});
} else {
chrome.tabs.executeScript(null, {file: "content_events.js", runAt: "document_end"});
firstTime = false;
}
} else {
if(!firstTime) {
chrome.tabs.reload(null, null, function(){
chrome.tabs.executeScript(null, {file: "content_timer.js", runAt: "document_end"});
});
} else {
chrome.tabs.executeScript(null, {file: "content_timer.js", runAt: "document_end"});
firstTime = false;
}
}
});
});
manifest.json
"permissions": [
"tabs",
"activeTab",
"<all_urls>"
],
第一次正确加载脚本时,但是当我更改它时,页面会重新加载,但新脚本没有加载(我认为它是在页面刷新之前加载的(。我尝试了 runAt 属性的所有可能性,也没有它。我也尝试没有在tabs.reload的回调函数中注入脚本,但没有运气。
感谢您的帮助!
看起来你想根据变量的值将Javascript文件注入到页面中。您可以使用chrome.tabs.onUpdate方法设置侦听器,然后调用chrome.tabs.executeScript以根据变量的值注入正确的文件。如果您计划在脚本中执行任何 DOM 操作,请务必侦听窗口加载事件。
相关文章:
- 未捕获的语法错误:无法在“文档”上执行“查询选择器”
- 使用Ajax或JavaScript选择下拉列表选项后,在同一页面上执行PHP脚本
- onchange选择get value并执行查询,然后在同一页面上显示结果
- 使用数组表示法对多个字段执行jQuery日期选择器
- Jquery - 如果条件为真,则遍历选择器并执行某些操作
- 如何在不选择模式配置参数的情况下,使用mongoose在MongoDB模式实例化中的关联数组/对象中执行foreach
- 从数组中选择键值对时无法执行函数
- 执行节点.JS基于HTML选择选项的查询
- 执行函数时添加的动态选择器
- 如何在更改 2 个选择框后执行操作
- 如何使用单个按钮执行单击事件以选择不同的 DIV
- 当用户在 html 文件中选择某些文本时执行 JavaScript 函数
- 当选择框在
中时,我如何显示它,并且我在 javascript 中执行 p.text(“test”)
- Javascript:执行 onchange 函数时选择的值是什么
- Chrome扩展程序/根据弹出窗口中的选择执行不同的内容脚本.html
- 选择未在 Chrome 中执行 onclick for 选项的元素
- 用于对选择选项执行验证的 JavaScript 代码
- 从 PHP 读取变量并使用 js 执行选择查询
- 选择多个项目以执行任务
- 可以在侦听器上执行选择,例如on(鼠标悬停)