blob: f3c9b3b178538dab72170de2242c584bbce79518 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
var PLUGIN_INFO =
<VimperatorPlugin>
<name>{NAME}</name>
<description>blink elements by XPath</description>
<author mail="teramako@gmail.com" homepage="http://vimperator.g.hatena.ne.jp/teramako/">teramako</author>
<require type="extension" id="inspector@mozilla.org">DOM Inspector</require>
<license>MPL 1.1</license>
<version>1.0.1</version>
<minVersion>2.3pre</minVersion>
<maxVersion>2.3pre</maxVersion>
<updateURL>http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/xpathBlink.js</updateURL>
<detail><![CDATA[
for test xpath
== Usage==
:xpathb[link] {expression}:
:xb {expression}
blink specified elements with XPath {expression}
== Caution ==
It's need "DOM Inspector" addon
]]></detail>
</VimperatorPlugin>;
(function(){
const Cc = Components.classes;
const Ci = Components.interfaces;
var flasher = null;
function getFlasher(){
if (!flasher){
flasher = Cc['@mozilla.org/inspector/flasher;1'].createInstance(Ci.inIFlasher);
flasher.color = '#FF0000';
flasher.thickness = 2;
}
return flasher;
}
/**
* @param {Node} aNode
*/
function blink(aNode){
if (aNode.nodeType == 3) aNode = aNode.parentNode;
var toggle = true;
var flasher = getFlasher();
function setOutline(){
if(toggle){
flasher.drawElementOutline(aNode);
}else {
flasher.repaintElement(aNode);
}
toggle = !toggle;
}
for (var i=1; i<7; ++i){
setTimeout(setOutline, i * 100);
}
}
commands.addUserCommand(['xpathb[link]','xb'],'XPath blink nodes',
function(expression){
var result
try {
result = util.evaluateXPath(expression.string);
} catch(e) {
liberator.echoerr('XPath blink: ' + e);
}
if (!result.snapshotLength){
liberator.echo('XPath blink: none');
return;
}
for (var i=0; i<result.snapshotLength; i++){
blink(result.snapshotItem(i));
}
},{}
);
})();
// vim: set fdm=marker sw=4 ts=4 et:
|