|
|
发表于 2013-4-7 23:47:38
|
显示全部楼层
本帖最后由 chenmeiyuan8 于 2013-4-8 00:01 编辑 ; i: j) q% {8 U' q
5 U% ~) D) R5 N9 `2 H8 k! o
火狐插件,用猴子
% N+ m; J: k6 x1 s$ [! @, P* I3 I9 X3 G; B( b; ?
var debug=false; 7 B, \$ o. U3 Y
var CleanHideObj=new CleanHideClass();
5 {( X( N8 x: L) D5 X# h9 ?, C' g; m
function CleanHideClass()
. t) L- `4 ?" s9 A6 I8 b$ v" b! U{ % ^* @5 A- A/ K$ }6 o( h
8 P9 {# `3 p4 P& J
this.on=function(id,bMZ)% a0 ^/ A4 K: }2 u1 a
{
, g# \* A z! j% S' f$ y9 R ( v; F. h( T$ z2 A6 j& _, j2 Y
if(id == 0)$ Y( Y4 d. x, \# ^9 w7 r o
{, N* l- c5 R& T# P& l& N4 b
var page=/* document.getElementById("content").contentDocument */document;
: o. [! S1 N9 g) q- H this.RemoveHide(page,"span");/ G5 z6 S% u0 p4 A1 N! ^
this.RemoveHide(page,"font");
/ X7 o0 D6 D- h5 a this.RemoveHide(page,"div");
" [. j) Y+ w( L5 r( J0 D$ h this.RemoveHide(page,"p");
- \' t& x( P7 F. |
2 K0 @! d: j; {/ j. v% O) ` }
+ O0 T, R5 o( K: z
+ _. D$ M& z3 `7 k) e) J }5 {0 g3 t0 h: O) n7 m( r1 Y, T
this.getobjstyle=function(node,prop)
0 D1 z2 \# W7 H6 i+ W! _ {# c( |. u, s) s6 U
try
: F( v* D) Q& g4 ^0 M {
7 {% C4 w0 T9 c return node.ownerDocument.defaultView.getComputedStyle(node, "").getPropertyValue(prop);5 g3 y! L+ M- P: S4 F& U4 I
}4 D. B9 v, }; a& Z s( b
catch(e)! t. f, N: s0 ]
{
' K7 V2 [/ s: \% _ if(debug)
; m( v7 _; ]: I6 R {
9 z9 V$ Y/ m$ o. G7 k9 @ alert(e.message); o, {) n) ~% t6 @ E q/ a7 w
}
$ i6 Q5 ]9 P. F9 B. `" \; Z! k+ s& Q
1 I( d8 g1 G# P* x2 J- _ return "200";* [5 n3 U: \: K, Z# n* N
}3 h- [' z. u& J) z( ^, v, b5 l
}# O8 M8 x% k1 `* Y8 @) [$ m$ j0 ^. D
]5 a5 {$ @+ r& @6 Y this.RemoveHide=function(page,objname)
9 l% n, G. ^4 }: P9 u: } {* y. M0 U6 Y: P$ {7 N
try
) ^2 y% e; P: d& m {" L9 r& w, r4 O' t* h
var minValue=15;/ r) L K: { l6 n( \" X u
var objs=page.getElementsByTagName(objname);
" V& u6 ?8 ~: H4 | k0 S/ u7 w2 v2 l& ]3 |! d& s' N# E
if(objs.length == 0)
$ U8 g6 U w& n( l+ |& n {
/ y }- M5 |( U5 I1 T- _: z if(debug)
: z) T1 B' h' S( [- ?* g" | {
0 Y- l0 x3 W* v: C alert("no object found!:"+objname);, i5 {2 Q, B3 C7 d0 J7 n
}
9 ]5 v% r o7 O: x/ F3 f+ I7 E }9 K4 s0 E2 r3 f5 B
else
5 w2 s {9 S5 T# O% `0 M7 t. } {7 h" S% Y. B4 J/ U# ~- W* z( h2 i
* N( t' ?* w( d; B7 y) ?0 X
for(var i=objs.length-1;i>=0;i--)
" F. Q0 D ~9 u/ D; Q {1 m! P( U2 [# N
var node=objs.item(i);
i/ U4 J5 J2 u" a- x# B+ W- y, l! U
8 E. u; ^6 Z" X# k; d ! E4 C9 f1 Q$ X( N+ j& x+ M: j
if(this.getobjstyle(node,"display") == "none" ||- ^" a. j$ L3 M
this.getobjstyle(node,"visibility") =="hidden" ||2 `1 _, m1 L$ }+ N1 @% `# f" O% W
parseInt(this.getobjstyle(node,"font-size")) == 0)
6 k8 y& U' K. D- m {
; J- [. p, |1 m1 Z. K, ^ if(debug)
* L& o) h+ w0 |8 b6 }/ ?% t' u {/ i$ |* h( Z7 v) }5 u" f
alert("remove invisiable!");; S% Y! l# {; x u$ O; _. k: U
}
" b5 N P% |! J' _* k- \/ t# T node.parentNode.removeChild(node);
9 O5 {2 w2 @1 T; t0 S" B) j7 {# ^
, E4 W! o& |( O/ D8 w* C& X3 \ }
4 R. g, j( O a* J$ N' V; M& r else * x) }' ^% r6 R
{3 Y9 }1 Q6 t5 J* a5 @1 D* p8 |' z
if(node.parentNode) 0 r3 _8 c1 e( O I' @- F( C
{- f+ C+ S; \7 t; H: U
var orgNode=node;
: C% T' v& `9 p# G9 g9 ] var orgColor=this.getobjstyle(orgNode,"color")
/ \5 r3 r1 v8 C4 V* I% L6 X var orgRGB=getRGB(orgColor); 4 I/ N8 m ]& e& W" S) ^: w
% Y9 m5 ~- H$ g* o& F5 y* l: d% E
var parentNode=node.parentNode
& @" P% ~ v2 r. \ var parentBgColor=this.getobjstyle(parentNode,"background-color");
. g1 B X3 l6 h
, h3 X! r0 M f4 N3 F( J+ } var isLast=false;
0 f% Q2 S5 p3 Y( A$ y ( a' c' F' ]9 X! B; x
while(parentBgColor == "transparent") + X5 O; \4 m- X- S" F7 W8 |+ f) U% T1 i
{
, t2 _$ b0 i" z$ t3 F! u# W
9 h, P/ z) G0 }* o
8 ]. I# m2 w5 ?) `1 j6 C) T6 f if(parentNode.parentNode == null)
8 X# k0 _" f J. H1 @2 m9 w {& ~& G1 f- W8 I
isLast=true;/ s, J2 Z1 H' i
break;
( f( R. T ~) R- w% V }
, [2 I9 _4 @. D( S4 G0 `' ~ parentNode=parentNode.parentNode;
- W& I p1 `( o; }3 o% f parentBgColor=this.getobjstyle(parentNode,"background-color");
/ ?4 n! Q6 \7 B$ p( J7 P% B% T7 A6 j/ ]# o: F0 s: I2 e/ H
if(parentBgColor != "transparent") & Z, j- s- v3 U
{( q9 }' A6 O, f/ C
break;2 b/ h" e+ T4 x% J* L% i0 w% @% [" P
}
$ w6 `3 u- f ~' N. v" ? }+ F9 ]; j0 I! ?* r
if(isLast) ( f2 L% Z# U8 A' }9 F
{
8 j' L; d7 u8 r if(debug)( W* z0 t; z2 [1 {7 v9 i8 V
{
8 b6 p, d2 Z: `4 V9 {" Z alert("last!!");
9 Q o$ l* Z. V0 W* m& I4 m, G }3 K. }, p8 l W2 s- T
if((Math.abs(orgRGB[0]-255)<=minValue)&&(Math.abs(orgRGB[1]-255)<=minValue)&&(Math.abs(orgRGB[2]-255)<=minValue))
3 i6 o9 G' K: S: g7 E1 y2 V {
9 p5 _5 I; _6 x1 [ orgNode.parentNode.removeChild(orgNode);
4 M5 P* K3 m( Q2 g" D: N }
" V0 B( k8 T0 m" n }6 i% {* A, Y& Q1 `" Z0 v
else
7 l# {9 @6 p% K4 {$ \ {
. ?1 {" d& \6 P if(debug)' A J9 \1 y5 X4 V1 m6 N
{
: ~4 B. O* a: ] alert("compare color and parent bgcolor!");
0 ^/ j% T" x: ?, i1 c }
8 S. |1 L3 ~: q# N* n G$ \ parentBgRGB=getRGB(parentBgColor);" d/ p7 { ]) Y
if((Math.abs(orgRGB[0]-parentBgRGB[0])<=minValue)&&(Math.abs(orgRGB[1]-parentBgRGB[1])<=minValue)&&(Math.abs(orgRGB[2]-parentBgRGB[2])<=minValue))
! w; W5 n6 j- r9 M2 Y3 x' B [ {' U& D6 F4 ~' _, ]9 J: L z. D
orgNode.parentNode.removeChild(orgNode); ( f/ q3 }7 ?1 }
}
$ L5 I7 T% z, Z }
l: D& m1 k4 R2 `' @* ]. @# o# E% M }
: r% I$ a8 w' j K }
9 m9 i7 T1 o) M/ U9 G8 F6 Q( r }
( W# O( C. o1 o; P" @+ [ }: n) C* r; \* S" \6 z9 ~+ [' G
5 B+ ~* G7 w- S" x( F 2 R" b, ]; `% @& `9 K% `( ~
var itemFrames = page.getElementsByTagName("frame");
. J1 B( R' \( v# A% S var itemiFrames = page.getElementsByTagName("iframe");
" ^! v" ^2 O2 [1 _
' \! p6 v& A; f! r var frame, iframe;$ c# ?4 n2 t9 M/ X* y! G! u
if (itemFrames.length > 0)2 b4 N) q! v9 U+ R+ k% b7 S/ n6 m3 h
{
8 |7 `2 s: K6 z7 R5 { for (var i = 0 ; i< itemFrames.length ; i++) . K5 P& B( ^9 r' F+ ~- E
{7 w+ ^6 e/ [' }! l. I7 n, I
frame = itemFrames.contentDocument;
4 F1 y. L( i' ~# N this.RemoveHide(frame,objname); ; y7 E6 ]5 l) U6 i" e
}+ M6 p! \) ~4 R; ~6 P. F6 C
}
& U% D4 _4 z G7 M; Y" C3 j if (itemiFrames.length > 0)
: {1 k3 Y: h* x! J {8 o `: W _! G9 r; l
for (var i = 0 ; i < itemiFrames.length ; i++)
) N$ _* P' U0 M+ j {
# G3 H6 N/ ^/ Q$ c1 F3 F7 n iframe = itemiFrames.contentDocument;
' J7 K& Z2 ^. ?" u5 Q this.RemoveHide(iframe,objname); 0 c1 r& ^$ R# ~) E$ K
}
, v2 B, E, S/ U* Z' R! E, S }
# e( ?# x% i1 ^7 N* f }
% q! _1 x: U# V- p/ T& K catch(e)! Y- ]: j$ F r6 o5 ]3 d; S) e
{' O5 u9 L% K9 e' m* s
if(debug)
3 A3 O+ F) p2 c5 l {% G8 R M2 @9 d( p, i" ]; C
alert(e.message);" o) H; c* z, `/ r
}/ E e5 I5 T8 K O2 R
}' T( v3 K# [% H$ h& i/ n& j) ]
}8 ] ]! [: p* n
# `% f- |# n' b* G+ Q2 L; j}
! S: Y- v( k1 W( i1 Y9 S3 A1 z! W9 e% m
function getRGB(colorString)
1 A B+ `4 F% k( Y" |0 h( D6 C{ x' Q# Z& }. U" D
var RGB = new Array;6 I+ a* p. c J
var tempSting=colorString.substring(4,colorString.length-1);$ B% ]: [3 G, `4 t& M
var tempArray=tempSting.split(",");% @. G* K+ K5 Q& i' x' i# }. G1 Y' t/ c
+ ?2 r- L: v! }" H& h& R7 t RGB[0]=parseInt(tempArray[0]);2 g$ U. O) O* m. x( d6 O+ }" o2 ~( Q
RGB[1]=parseInt(tempArray[1]);: g) F7 B$ A; f7 S
RGB[2]=parseInt(tempArray[2]);' @2 w/ S: d; A( M
/ C) e* l# ^7 E: v8 R* U; V/ b T return RGB; ~ s3 T; R5 O
}
# h- n0 W4 F* F! dfunction keys(evt) 8 `2 n6 e% j' w+ ]- r$ W5 ^
{ & S7 u! K6 {) n9 ^& ?3 N
if(evt.ctrlKey && evt.keyCode=="81")
; Z2 R" ?" a! d6 \& y; k {
5 S: V+ P5 \: ?( h$ j CleanHideObj.on(0,1);; D0 L7 @) t7 F6 C$ i6 k7 j
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q"); % P/ u0 d) U% R! K- f# z) k' B
! P0 |. E5 A' N' F# ~! M& f
}
! G! W" P3 z: S* r% n; V: G- j4 O# m } 0 i- J4 t e2 ]; r m" E O+ r
document.addEventListener('keydown', keys, false);
. A/ H0 \ m8 J( tGM_registerMenuCommand ('Clean Hide',. B5 O6 p8 c+ m+ f2 }( j' V v
function(e){' x3 W3 d5 C6 m: Q. D* a
CleanHideObj.on(0,1)
5 G8 j& z% i6 @7 p; B, ~# oalert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");/ O" ]3 f) | N( C
});
& l B. G/ Y, H; D |
评分
-
查看全部评分
|