1

我一直在考虑使用 jQuery,但在 Chrome 扩展和 JavaScript 方面我非常缺乏经验。当用户单击按钮时,我需要从页面中获取一个 div(带有 id,它是静态的,但内容是动态的)。我无法从当前页面获取内容,想知道是否有人可以给我一些提示或指导我获得相关的答案/教程。

谢谢。

4

3 回答 3

2

如果您要做的只是将 div 的内容作为查询提交给 Google,那么一个简单的衬垫就可以完成,不需要 jQuery。

window.location = 'http://www.google.com/search?q='+encodeuricomponent(document.getElementById('theid').innerHTML);
于 2013-05-05T22:12:14.247 回答
0

好的,所以要做你想做的事,你需要做三件事。首先是学习如何使用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 来执行此操作,但我向您展示了如何使用它,以防您需要它来做其他事情。

于 2013-05-05T23:17:29.593 回答
0

如果你知道ID,你可以使用jQuerys id-Selector:http ://api.jquery.com/id-selector/ 一旦你找到了div,你可以使用这个方法http://api.jquery 获取它的文本。 com/文本/

于 2013-05-05T22:07:08.860 回答