我一直在考虑使用 jQuery,但在 Chrome 扩展和 JavaScript 方面我非常缺乏经验。当用户单击按钮时,我需要从页面中获取一个 div(带有 id,它是静态的,但内容是动态的)。我无法从当前页面获取内容,想知道是否有人可以给我一些提示或指导我获得相关的答案/教程。
谢谢。
我一直在考虑使用 jQuery,但在 Chrome 扩展和 JavaScript 方面我非常缺乏经验。当用户单击按钮时,我需要从页面中获取一个 div(带有 id,它是静态的,但内容是动态的)。我无法从当前页面获取内容,想知道是否有人可以给我一些提示或指导我获得相关的答案/教程。
谢谢。
如果您要做的只是将 div 的内容作为查询提交给 Google,那么一个简单的衬垫就可以完成,不需要 jQuery。
window.location = 'http://www.google.com/search?q='+encodeuricomponent(document.getElementById('theid').innerHTML);
好的,所以要做你想做的事,你需要做三件事。首先是学习如何使用content scripts
将代码注入给定选项卡。其次是从选项卡中获取您想要的信息,最后是使用您在步骤 2 中获得的字符串进行搜索。所有这些的示例如下。对于此代码,我将domain.com
用作您要从中获取信息的站点。
清单.json
"background": {
"scripts": ["background.js"]
},
"permissions": [
"tabs","*://www.domain.com/*"
],
"content_scripts": [{
"matches": ["*://www.domain.com/*"],
"js": ["jquery.js","getText.js"]
}]
获取文本.js
$('#buttonID').click(function(){
// I am assuming that the contents are directly what you want to search with
var text = $('#divID').text();
// At this point you could simply use window.location to search in this tab
// but in the case you would rather open a new tab to search in
// I will show you that as an example
chrome.runtime.sendMessage({method:'searchText',text:text});
});
背景.js
chrome.runtime.onMessage.addListener(function(message,sender,sendResponse){
if(message.method == 'searchText'){
var url = "http://www.google.com/search?q="+encodeuricomponent(message.text);
chrome.tabs.create({url:url});
}
});
此代码会将 acontent script
注入所需的页面,单击按钮时从所需的 div 中获取文本,将该文本发送到背景页面,然后以该文本作为搜索参数打开一个新选项卡。我有点草率地写了这个,很抱歉有任何语法错误。
此外,不需要 jQuery,因为您可以使用纯 javascript 来执行此操作,但我向您展示了如何使用它,以防您需要它来做其他事情。
如果你知道ID,你可以使用jQuerys id-Selector:http ://api.jquery.com/id-selector/ 一旦你找到了div,你可以使用这个方法http://api.jquery 获取它的文本。 com/文本/