Jquery 通过浏览器扩展添加表值

Jquery 通过浏览器扩展添加表值,jquery,parsing,firefox,google-chrome,greasemonkey,Jquery,Parsing,Firefox,Google Chrome,Greasemonkey,我在一个网站表中有一组数据,该表有多个页面,我需要解析并添加某个字段的值,特别是价格字段和库存字段。我没有访问代码或数据库的权限。有人知道Chrome或Firefox中是否有一个扩展可以促进这类功能吗?以下是我需要的数据示例: 我想要一个非常简单的总结,如“库存总价:$500.00”。我甚至不介意它是每页的,我必须写下每一个新的总数,然后自己加起来。我精通jQuery,所以如果我能自己写这篇文章,我甚至不介意有一个指向这个方向的指针。但它必须是一个扩展,因为我没有直接访问该页面的权限 编辑:一

我在一个网站表中有一组数据,该表有多个页面,我需要解析并添加某个字段的值,特别是价格字段和库存字段。我没有访问代码或数据库的权限。有人知道Chrome或Firefox中是否有一个扩展可以促进这类功能吗?以下是我需要的数据示例:

我想要一个非常简单的总结,如“库存总价:$500.00”。我甚至不介意它是每页的,我必须写下每一个新的总数,然后自己加起来。我精通jQuery,所以如果我能自己写这篇文章,我甚至不介意有一个指向这个方向的指针。但它必须是一个扩展,因为我没有直接访问该页面的权限


编辑:一个greasemonkey脚本可以做到这一点吗?

如果您精通jQuery,并且知道如何从该表中提取数据并进行自己的计算,那么这将非常容易!请参阅文档,其中包含了执行此操作所需的所有信息:

单行线 如果希望在访问该页面时始终显示总计,则可以使用。内容脚本世界将与该页面的DOM进行直接通信,因此您可以使用jQuery完成自己的工作。这方面的框架是:

manifest.json

{
  "name": "Content Script test",
  "version": "0.1",
  "description": "Content Script test",
  "content_scripts": [
    {
      "matches": ["http://www.website.com/*"],
      "js": [ "jquery-1.4.2.min.js", "cs.js" ],
      "run_at": "document_start",
      "all_frames": true
    }
  ]
}
{
  "name": "Browser Action test",
  "version": "0.1",
  "description": "Content Script test",
  "background_page": "background.html",
    "browser_action": {
    "default_icon": "icon19.png",
    "default_title": "Browser Action Test"
  },
  "permissions": [ "tabs", "http://www.website.com/*" ]
}
cs.js

// Your jQuery
// Your jQuery
另一种方式 如果希望仅在单击浏览器上的按钮时显示总计。你可以用一个。当您单击浏览器操作时,您将需要一个侦听器。基本上,这方面的框架是:

manifest.json

{
  "name": "Content Script test",
  "version": "0.1",
  "description": "Content Script test",
  "content_scripts": [
    {
      "matches": ["http://www.website.com/*"],
      "js": [ "jquery-1.4.2.min.js", "cs.js" ],
      "run_at": "document_start",
      "all_frames": true
    }
  ]
}
{
  "name": "Browser Action test",
  "version": "0.1",
  "description": "Content Script test",
  "background_page": "background.html",
    "browser_action": {
    "default_icon": "icon19.png",
    "default_title": "Browser Action Test"
  },
  "permissions": [ "tabs", "http://www.website.com/*" ]
}
background.html

chrome.browserAction.onClicked.addListener(function(tab) {
  chrome.tabs.executeScript(tab.id, {file: 'jquery-1.4.2.min.js'});
  chrome.tabs.executeScript(tab.id, {file: 'cs.js'});
});
cs.js

// Your jQuery
// Your jQuery

就是这样,请参考文档以获得更多帮助,上面的代码未经测试,因此如果这些东西无法立即运行,请不要感到惊讶:)

您可以尝试类似的方法,并将其保存为bookmarklet:

$('table.inventory').each( function(i){ // allow possibility of more than one table?
  var arTot = $(this).find('tr').map( function(i,e){
    var qty = parseInt( e.find('td:first').text(), 10 );
    var price = parseFloat( e.find('td:last').text() );
    return qty * price; // leave rounding and precision as your exercise
  }).get(); // result as an array
  alert( 'Total: ' + arraySum( arTot ) ); // reduce to single value
});

function arraySum( ar ){ // convenience function
  for(var i=0, sum=0, len=ar.length; i<len; sum+=[i++]);
  return sum;
}
$('table.inventory')。每个(函数(i){//是否允许多个表?
var arTot=$(this.find('tr').map(函数(i,e){
var qty=parseInt(例如find('td:first').text(),10);
var price=parseFloat(例如find('td:last').text());
返回数量*价格;//保留舍入和精度作为练习
}).get();//结果为数组
警报('Total:'+arraySum(arTot));//减少为单个值
});
函数arraySum(ar){//方便函数

对于(var i=0,sum=0,len=ar.length;iThanks for the insight,我现在构建了我有史以来的第一个浏览器扩展,它给了我一些自豪的时刻,尽管它的功能和使用有限。