【发布时间】:2015-04-08 12:43:33
【问题描述】:
我正在尝试使用一行 jQuery 代码制作 Chrome 扩展,但它不起作用。我正在尝试触发对元素的点击。
chrome的控制台根本没有显示任何错误, 当我只将 jQuery 代码放在控制台中时,它工作正常。
我的代码:
content.js
$(document).ready(function() {
$('.like_post:contains(Like)').click();
});
background.js
chrome.windows.getCurrent( function(currentWindow) {
chrome.tabs.query({active: true, windowId: currentWindow.id}, function(activeTabs){
chrome.tabs.executeScript(
activeTabs[0].id, {file: 'jquery-2.1.3.min.js', allFrames: true}
);
chrome.tabs.executeScript(
activeTabs[0].id, {file: 'content.js', allFrames: true}
);
});
console.log(currentWindow.id);
});
manifest.json
{
"name": "plugin name",
"version": "0",
"description": "What do I do as an extension",
"manifest_version": 2,
"browser_action": {
"name": "project with jquery",
"icons": ["icon.png"],
"default_icon": "icon.png"
},
"content_scripts": [ {
"js": [ "jquery-2.1.3.min.js", "background.js", "content.js" ],
"matches": [ "http://*/*", "https://*/*"]
}]
}
我还下载了jquery-2.1.3.min.js 文件并将其放在扩展文件夹中。
谁能解释为什么它不起作用???
【问题讨论】:
-
我认为您对 Chrome 扩展以及 Javascript/jQuery 也不太了解。首先你想点击什么?没有
<SOMETHING>元素,它不存在,所以 jQuery 选择器无法选择它。另外,您为什么将您的脚本称为background.js并将其用作内容脚本?是不是有点混乱?或者你的意思是在后台使用它?目前还不清楚您要做什么。 -
您的 jquery 代码似乎不完整且错误。这是实际代码吗。
-
某事是我试图点击的东西,在这种情况下它只是一个按钮的类。它无关紧要,因为正如我在帖子中所说,当我将 jquery 代码放在控制台中时它可以工作。所以你建议我用这段代码制作一个 background.js chrome.browserAction.onClicked.addListener(function(tab) { chrome.tabs.executeScript(tab.id, { allFrames: true, file: "content_script.js" },函数() { if (chrome.runtime.lastError) { console.error(chrome.runtime.lastError.message); } }); });和一个带有 jquery 代码的 content_script.js?
-
@roshan 正如我所说,当我将这行代码放入控制台并按回车时,它工作正常。
-
你真的让你的代码变得更糟了。我会解释根本问题,但你以前的版本更正确。
标签: javascript jquery google-chrome google-chrome-extension