|
阅读:4760回复:6
User Script 中可能用得上的函数
/*** UserScript 可能用得上的函数 ***/
/* 由ID获取元素
var d = $('myDiv');
var divs = $('myDiv','myOtherDiv');
*/
function $() {
var elements = new Array();
for (var i = 0; i < arguments.length; i++) {
var element = arguments[i];
if (typeof element == 'string')
element = document.getElementById(element);
if (arguments.length == 1)
return element;
elements.push(element);
}
return elements;
}
// 根据XPath获取元素
function xpath(query) {
return document.evaluate(query, document, null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
}
// 根据XPath获取元素, 有些不同
function $x(p, context) {
if (!context) context = document;
var i, arr = [], xpr = document.evaluate(p, context, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for (i = 0; item = xpr.snapshotItem(i); i++) arr.push(item);
return arr;
}
// 添加 CSS 样式
function addGlobalStyle(css) {
var head, style;
head = document.getElementsByTagName('head')[0];
if (!head) { return; }
style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = css;
head.appendChild(style);
}
/***** 删除 START *****/
// 删除已知元素
function removeElement(e)
{
if (e) {
e.parentNode.removeChild(e);
}
}
// 按照ID删除元素
function removeByID(id)
{
removeElement(document.getElementById(id));
}
// 按照NAME删除元素
function removeByName(name)
{
var allElements = document.getElementsByName(name);
for (var i = 0; i < allElements.length; i++) {
thisElement = allElements[i];
removeElement(thisElement);
}
}
// 按照XPath删除元素
function removeByXPath(x) {
var allElements = xpath(x);
for (var i = 0; i < allElements.snapshotLength; i++) {
thisElement = allElements.snapshotItem(i);
removeElement(thisElement);
}
}
/***** 删除 END *****/
//配合GM_getValue使用的序列化与反序列化
function deserialize(name, def) {
return eval(GM_getValue(name, (def || '({})')));
}
function serialize(name, val) {
GM_setValue(name, uneval(val));
}
参考资料: 深入浅出 Greasemonkey PS:有空再接着总结 |
|
|
1楼#
发布于:2007-05-09 19:53
^_^,有空添加到wiki去吧
|
|
|
|
2楼#
发布于:2007-05-09 19:53
这东西很有必要。就是需要这样的整理。
通篇地看E文说明,头都大了。 |
|
|
3楼#
发布于:2007-05-09 19:53
继续总结 非常有用。fiag自从翻译了dive ino greasemonkey后,对gm也算是比较了解了!支持!
|
|
|
|
4楼#
发布于:2007-05-09 19:53
今天Greasemonkey升级到5月的版本,有中文界面了。需要更新《深入浅出 Greasemonkey》了
|
|
|
5楼#
发布于:2007-05-09 19:53
|
|
|
|
6楼#
发布于:2007-05-09 19:53
人手啊人手,缺人手啊。。。
|
|
