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