|
|
发表于 2013-4-7 23:47:38
|
显示全部楼层
本帖最后由 chenmeiyuan8 于 2013-4-8 00:01 编辑
: R2 ?0 g/ F7 o/ A' {- ~# {4 ^7 W: K
火狐插件,用猴子4 f9 H1 Y6 W+ l4 b0 W0 J& ^- J
/ E; j2 y7 v b" E8 Z* r
var debug=false; $ \: h; h* M! X) }
var CleanHideObj=new CleanHideClass();: v) N3 V, G9 l- J( e# \
- x! q9 Z, V* V u" S
function CleanHideClass()
% W' P; m) ^2 u* c$ n{
2 d# N! g+ Z; i( I; k
! X2 c6 b7 L/ v9 S# B2 {7 s this.on=function(id,bMZ)
- T6 ~$ ] |# T$ S) E3 w. B {4 G# U I, h& j" v% z" X' W
9 H# ?3 t3 {! u; V
if(id == 0)% | M! d1 o) P3 p
{+ }3 i P: s5 f
var page=/* document.getElementById("content").contentDocument */document; _# m: p2 [, T, y S
this.RemoveHide(page,"span");& ?7 p( Q$ C: `
this.RemoveHide(page,"font");
9 N% ]2 u5 x$ O! T3 f1 ] this.RemoveHide(page,"div");$ J" V8 a- i1 U
this.RemoveHide(page,"p");4 a3 b! x% p1 c; I. m* ]
# Y2 F& ]8 @5 B. j8 j6 J }1 q7 W- z) I% o' R0 g
. |; p9 p6 Q, W8 F9 \( u; \$ V5 m }7 Z1 L% ~+ Q2 P1 w/ \
this.getobjstyle=function(node,prop)$ g4 J9 Y0 w5 m; S# L8 U4 H! A
{
9 P8 A3 \1 N- R5 x7 o try, T6 u m0 s/ L* W H! J2 W4 D
{
- c9 `. n0 ~7 t @0 s( P6 T& O. l return node.ownerDocument.defaultView.getComputedStyle(node, "").getPropertyValue(prop);3 B% @$ g1 D" m W$ X
}) q( J+ \- W6 b% v0 d! T
catch(e)3 B4 g6 s9 U) q& e% r
{
, |8 j( q/ P7 ~, x$ |/ ] if(debug)5 ?' F0 @% ]+ z$ T" C; A0 a
{% T! j" M" s+ H& G0 D
alert(e.message);
2 J& R" N: }' c3 N' I$ R% n }# X* T2 J0 b7 C8 b9 e/ w
. `! z4 S' t5 P: I6 L
return "200";/ S3 {6 D& u2 c
}: m5 h' q5 Z& V# _3 f8 H" {% f
}5 p5 Y4 t5 A6 [, Q
, F9 j9 K7 g. g+ p/ g0 ~
this.RemoveHide=function(page,objname)7 c+ d& y' E' I: I! @. j2 L8 l
{4 i+ x5 J& \0 f% W _7 W
try, d& s+ [ c# r& i' G9 r# M- O
{
! j3 W( j* K/ @ U. o var minValue=15;
1 D1 H. ?! U9 |' H var objs=page.getElementsByTagName(objname);
- ]7 G! U& K) D9 X
. n9 R: ~: s2 M1 m if(objs.length == 0)
6 x3 @* m! {) k: O& n& ~ {
4 X) Q! ~; G' e3 V% C* `* p if(debug)
0 y, |9 c( g5 n, X {
; r' \$ R( N& V1 N) `# ? alert("no object found!:"+objname);8 a q# L, B% G1 ?$ R3 C/ ]- e
}; u% w; ?: S: R1 |5 |
}
5 [: L2 j: h1 _6 _3 T" ]/ @ else
" h! A9 U9 S* L {7 }) F9 l$ ~4 _! I9 g( y
) `; \2 H' s; p5 h C1 Y2 r for(var i=objs.length-1;i>=0;i--)
" B+ k, A$ a% i6 n4 g5 }. i {& ]) w3 n/ e/ X1 u l
var node=objs.item(i);
( `- H( L4 e( W0 J7 h
3 ~% t% T. l+ l+ Z" S ! d" a I0 V( F% ?3 M @
if(this.getobjstyle(node,"display") == "none" ||
$ s% i) ?* w- u, X# r: w; \ this.getobjstyle(node,"visibility") =="hidden" ||8 h: z8 a( O; S
parseInt(this.getobjstyle(node,"font-size")) == 0) & r0 `/ N0 Z. W& O5 Y
{
/ T- g6 e& S% q. s" r if(debug)
$ i+ p0 a0 w! W& i/ u {; N5 X9 J' D& ^3 J
alert("remove invisiable!");
: ]8 D2 }; @, } T5 W4 e }: B5 x L# g) ^7 ]$ F8 t
node.parentNode.removeChild(node); o& ^3 P9 `" j4 G
/ J; f! c5 Y. P- V* m
}
, x7 }1 i0 ~! M# s' z1 b! g else
1 w" ?# L+ V+ M {
- Y7 m2 {/ I. { ^# {) d if(node.parentNode)
- a+ l2 f# ?% y1 e' N {
- V5 p7 B' Z$ w var orgNode=node;
4 ^3 k* k* [ N2 N! e7 |0 S. X3 k var orgColor=this.getobjstyle(orgNode,"color")" {- O. @) L" O- u f# G2 c
var orgRGB=getRGB(orgColor); + s3 d4 f( m6 x; n9 ?: s
- `7 O' L* u: H9 e1 u8 @" K var parentNode=node.parentNode! X) N4 h$ `" R% Y
var parentBgColor=this.getobjstyle(parentNode,"background-color");9 W$ e3 d. x* H
6 B1 t$ h$ a8 T2 W/ |) D
var isLast=false;: b( ^+ b4 t. H2 Z h
; P" X& q, V' S+ L' W* a z1 m while(parentBgColor == "transparent") 2 `) d$ Y& O0 r: Z, ]/ R1 }( u
{
7 K7 e8 @- C& C& o2 p5 v" F: b
9 a+ w' q. `9 J4 }* I 0 O7 z% n' m! w& `- c% M" M
if(parentNode.parentNode == null): E$ H, t" k* \- W; t) J3 f
{1 t* n4 U3 J# g( V* t* F6 [
isLast=true;
2 n* k, \. p9 G break;0 R1 O8 d: i6 X& Y0 D, c. \
}
4 {& y2 D7 [; ` parentNode=parentNode.parentNode;
; I4 u8 f+ E" x$ J! i9 \+ G+ j+ K parentBgColor=this.getobjstyle(parentNode,"background-color");
# y7 p$ V3 I) q( O- g: ~. P: t+ s8 U& u- S3 s5 U$ h
if(parentBgColor != "transparent") 4 o% A' B0 _, N, y4 d, ~
{
1 ^2 c9 @2 M% d& j7 R' z break;
3 H: b! v: Q7 c' F* n+ N }
0 f! p; _7 ^; g& y }% {' ?* D3 Q8 b- J. @: A
if(isLast)
8 _$ ]7 I' s5 Z0 H- w8 \ {4 i' U7 s- c8 o, d4 n! r+ k
if(debug)
/ J, h. F3 M) I" }: D {/ L" q% A4 ~1 s, D; g$ M% }
alert("last!!");* \* S1 d) ?& o. a* C0 _1 Z
}- r W! h( \: Y9 T5 T
if((Math.abs(orgRGB[0]-255)<=minValue)&&(Math.abs(orgRGB[1]-255)<=minValue)&&(Math.abs(orgRGB[2]-255)<=minValue))
% S* _! G) b+ b9 M5 Y* i4 `/ } {; C+ Y7 K4 U9 `+ ^; ]
orgNode.parentNode.removeChild(orgNode);
. T* S9 n8 ? }- P( | }7 Z' V, h6 c/ Y J: T* N
}. K, C; q. m- t3 N( @0 S
else
3 [; y# s0 H; W- ?7 a {4 v) y1 b2 f2 C
if(debug)
; Q1 {7 k- R; u6 k {
% I7 G1 d5 b0 f1 m3 H7 r7 P% ~" t alert("compare color and parent bgcolor!");
1 x/ K; |8 ?1 F }
7 z; T0 \0 h6 J* f8 o parentBgRGB=getRGB(parentBgColor);
, N# v, a3 A6 e5 H. k" W; P if((Math.abs(orgRGB[0]-parentBgRGB[0])<=minValue)&&(Math.abs(orgRGB[1]-parentBgRGB[1])<=minValue)&&(Math.abs(orgRGB[2]-parentBgRGB[2])<=minValue)), s" J/ g4 d D. ^5 r/ u* e
{. Q, R& Q" ~# v( Y! f
orgNode.parentNode.removeChild(orgNode);
0 U' K0 J# p! ^5 Q }: W3 o, Y g2 r
}! {9 a# C- W3 \* `6 z
}
$ {- O% Q4 T3 u5 {0 n+ m l }
6 C3 Z& i- V s3 z# l9 U }
+ z1 c! v2 Z( B/ n p }; O2 C- n0 O! u) r0 z
5 W. }: m3 K7 [8 m9 J. o( O
' R3 H6 p( N% W+ Q
var itemFrames = page.getElementsByTagName("frame");
* s6 J1 I$ Z5 i" Q8 } var itemiFrames = page.getElementsByTagName("iframe");( F5 N: }4 c+ U
& N' x) g6 I+ K6 p9 O: x! p z var frame, iframe;: H l% B+ W0 ?0 c9 _
if (itemFrames.length > 0) d- m# l$ o4 `- o! h Y) |; K
{
# X# A2 l0 Z) h7 `' F for (var i = 0 ; i< itemFrames.length ; i++) ( Z, B: U4 a, \: P6 `
{
% {2 p/ b$ \9 W2 [/ |; _0 c. z frame = itemFrames.contentDocument;2 t/ o% R8 p+ B. j% H2 j
this.RemoveHide(frame,objname);
* e: |+ r1 t0 ]$ `/ u }
' ^; i, D# e" w+ g) V+ \ }
- D. B- T0 `( J# J* H if (itemiFrames.length > 0)$ K/ o9 E- {% ^% U
{
# _& k) W! I" o8 K$ u for (var i = 0 ; i < itemiFrames.length ; i++)
4 q4 U+ f# e* q: W/ }5 X6 o {8 t0 E* s: [ }
iframe = itemiFrames.contentDocument;
% i* q; v$ M- U$ J; N this.RemoveHide(iframe,objname); 2 M9 j! o5 s6 R7 V
}. b9 d9 f% Z- @3 q& D
}
. D* B7 R9 R6 d0 G$ h }% s) m, q6 `' Q, e& ]
catch(e)% U7 E! `9 R1 h3 }4 @
{
; E) u; }4 y& J0 ~ if(debug)
6 Z4 ]7 z2 |/ @6 e8 X) _ {
% N2 E. ]; t, z/ c1 B alert(e.message);
% n+ Q3 @6 X0 R2 `6 G$ h" } }5 |% [% F% c* i1 I' j/ T6 Z+ A
}1 f+ Q: |5 Z7 x6 v- g- z& S- P# o% P
}
4 h6 r1 p* F( k: O 3 r# T, R! f, A0 D/ N) e7 Y
}" y+ H1 j' G, z3 K& {3 U. V
" T$ [& _# {( `- Q V7 i
function getRGB(colorString)
$ D2 t; W; S i% t{
+ G$ j. a+ T/ j! Y( l var RGB = new Array;. J% C1 S8 c3 {- m$ s- x8 _
var tempSting=colorString.substring(4,colorString.length-1);
+ F8 x8 g) u& p0 [$ p var tempArray=tempSting.split(",");& K$ ?8 s2 j, C+ K( P
& |% r7 b# r& w& c* x
RGB[0]=parseInt(tempArray[0]);
- s7 p8 [. \& ~- f5 D RGB[1]=parseInt(tempArray[1]);: S4 [" p1 ^! c4 ]/ a
RGB[2]=parseInt(tempArray[2]);
' V% g( G6 V S; d4 o, a/ ?
5 b3 G6 D o* D* E5 d return RGB;
$ `, p- R! J3 v, D$ o) N}
) T$ G/ J/ Z$ w: Ifunction keys(evt)
4 ]7 O0 _; g! X { 9 u0 r( p, z7 U
if(evt.ctrlKey && evt.keyCode=="81") k- G; G: b8 L$ a
{
9 T3 V, c' E/ V/ m( W CleanHideObj.on(0,1);
6 ]$ y8 y6 b8 }+ O4 B alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q"); 6 M$ ]3 \5 o8 n7 t4 y5 p8 l
3 a3 A& L% k' r7 b+ S }
7 y1 r) c2 {" i' t. F/ s } ! ~: ~, l7 T& }3 _0 Z1 p7 a
document.addEventListener('keydown', keys, false);
4 w7 E* W' J) a3 c) Y! k+ V s+ t5 i/ |GM_registerMenuCommand ('Clean Hide',
& Q1 w8 M C/ D) i: g @. [function(e){0 m! T, q/ j. c9 p7 v: c C* A
CleanHideObj.on(0,1)5 t! V0 K8 w4 R; Z; Q
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");
& X* P4 Z2 d; F2 d+ d" a4 u});- |0 Y# F% j' o0 H. [) D
|
评分
-
查看全部评分
|