|
|
发表于 2013-4-7 23:47:38
|
显示全部楼层
本帖最后由 chenmeiyuan8 于 2013-4-8 00:01 编辑 1 k. G* r: v1 r
4 m/ B: `5 p3 m" q1 d
火狐插件,用猴子( y E) W* x- P+ c- m
0 h" u3 p3 B* |0 T% z/ s2 d: t" S
var debug=false;
+ C# ?( l3 {, R5 [; g) Z4 dvar CleanHideObj=new CleanHideClass();' Y6 i5 {" G! p+ O/ t, S
) F$ ^3 k; g& @0 j3 Y/ J$ t
function CleanHideClass()
# j) g7 q7 \9 s! ~- Q- X{ 6 W, e5 c/ x( f' N& d- N
& N8 p* M4 D; g
this.on=function(id,bMZ)" l$ Q) [; [' K- W2 G' W( r6 ]
{
+ u& T2 i2 Q/ D) w% m- P" X 3 t7 x7 ^& b; K& u& X- f% i( a7 z
if(id == 0)& S4 H9 Y [2 w: R3 x
{
$ J2 L$ p) M# X) l) N/ b var page=/* document.getElementById("content").contentDocument */document;
5 c2 @& J' G: n) h this.RemoveHide(page,"span"); z) j8 v+ z, U7 S5 ?
this.RemoveHide(page,"font");% c* q% b, t4 x2 F
this.RemoveHide(page,"div");5 j' r1 r i5 Z6 V8 ?9 |. a- A( G
this.RemoveHide(page,"p");2 v n( w* T8 H( ]7 L! c( l# n
/ t9 s8 {% }$ S/ B2 G* r
}
5 {3 Q! w, s9 H
) a( B9 r2 l2 p! V8 C }: h, l* X, \ _% v
this.getobjstyle=function(node,prop)& A( |6 E) M5 A! t- L' l9 V
{
# Q' U% A% S( m0 R% H/ x try
% U" }) ?- b' [+ m: w {5 B3 j) c" M. m7 B9 F
return node.ownerDocument.defaultView.getComputedStyle(node, "").getPropertyValue(prop);, K( a# L7 ~& o7 I5 ^0 W! |5 p8 }
}
2 _& G9 w2 `) |8 r; Q catch(e)
8 V6 T9 |7 ]( V9 f3 @1 s% s! l" |! ^ {
( {) Q0 T9 f9 x) x9 U3 y if(debug)
7 S h# _# Y* U' q {
& k+ L! l' w! u: L4 V2 M% _+ i alert(e.message);
( ?% c. w9 ?/ e }. b9 A2 x" b' C4 a& ^
% Q: U7 N, S# l" ]& n% }( S c- H return "200";
) ^8 c- A4 W: H$ J% Q( `+ {) w) g }
/ k% u: W6 a0 Z7 W0 R2 X" @& r }
2 T+ Y+ |5 ?1 d O
# b% a7 T$ O) D8 k P' O. N8 O this.RemoveHide=function(page,objname)
7 \- M6 \6 C7 e4 r3 T {% W: W' L% M( M, H2 M( j+ K
try* V6 E5 v5 ^: g/ ]+ A
{
% U# p; x5 d* R' o var minValue=15;
' m6 v1 z3 o% d4 _* x* E var objs=page.getElementsByTagName(objname); * ?) J) @7 j+ B1 L& N+ K a8 Z4 t
2 m9 u4 F4 Y0 V3 U5 ^! O if(objs.length == 0) + K4 ^$ N% {% {6 W V; C* Y
{
0 J9 ?; \, i- ]/ z if(debug)6 A0 f5 M& ^4 O: f
{
( Y0 |" ?, a1 F# k4 V alert("no object found!:"+objname);
0 M" ]4 K/ E2 L/ J* u- e) u }
2 e% v3 c i; O2 q; Q }/ |: h6 p- e* w+ z+ }0 s# X6 z) W
else
- m7 `0 ^, w+ i' S9 D5 }, m& A5 R {" n7 Z9 j4 u- q! h: R& a
& H, \! e$ x6 a' L$ f
for(var i=objs.length-1;i>=0;i--) . }0 ^) O% X6 O
{5 x3 Z, |6 M& p4 a
var node=objs.item(i); , d n9 ], ^# h2 S+ G y- O! e
* t3 X8 g3 J" x& `
* v; U ?/ \! J C! E0 D# { if(this.getobjstyle(node,"display") == "none" ||
' T6 n4 ~3 i1 }/ E. z6 E this.getobjstyle(node,"visibility") =="hidden" ||* @* X& c u9 d. e) N
parseInt(this.getobjstyle(node,"font-size")) == 0) 2 x4 {* ^7 F, [! Z/ @# b1 C, K% h
{* A1 ^! K7 T- N1 Q2 W9 U& ^% G
if(debug); y$ o% N6 {$ [; H- C: ~
{
5 u3 @2 P. y7 G- k3 X alert("remove invisiable!");9 w5 g- A9 u* H: q# g8 t& n8 v* X S
}
7 U+ S& I. B- a; Z node.parentNode.removeChild(node);
& \( Q- X8 y9 v6 y. v. S& Z
+ T) p# n8 y0 o" j }
: K( j! D* P+ {9 H, u+ E' K else
6 B! }+ W! U1 }! p2 }0 m {5 j3 s: K& h; `
if(node.parentNode) ) w. m/ Q9 T6 J! n% K
{
/ v, \1 O9 o4 H3 ? var orgNode=node;2 T* F) d; I8 l( M1 g) Q" Q
var orgColor=this.getobjstyle(orgNode,"color")- E& n8 \+ K2 d. J" x* G
var orgRGB=getRGB(orgColor);
$ u- k0 D( f* n
) ~ `0 {8 j- a: s; T2 F var parentNode=node.parentNode
4 @2 ]4 L3 A! w" b+ {1 _* O6 Q var parentBgColor=this.getobjstyle(parentNode,"background-color");% `; E5 F2 u1 f5 P$ B
. W+ t8 t0 M6 F3 l7 d var isLast=false;' a2 O8 z- p( v8 v5 Q# m
+ L) w- |% Z3 v7 i0 M" M+ O
while(parentBgColor == "transparent")
! L5 h( h0 z, X) b {
" F( b9 l" n& _% z; f. r, v 7 `' ?( L: H5 V8 M' R1 r5 k; D
- i2 z. e9 Q9 Y! V. F m" V if(parentNode.parentNode == null). D/ n$ w4 t; C+ Q+ H" w
{4 Q( P8 P! D% Q0 s7 k: j
isLast=true;2 I* r5 {& U" N `4 j
break;
& N0 k) S. N: A" C- T }
* E" ^; s1 U- L parentNode=parentNode.parentNode;
# n2 W4 T. }, ~ parentBgColor=this.getobjstyle(parentNode,"background-color");
9 \6 ?% Q/ I% M* c
7 N$ c" o& _& z$ ] if(parentBgColor != "transparent") ; b, x, T. B, E( l( Q, g
{: o) \1 S0 v" ] S0 Q9 f# B6 V: @
break;3 z7 t+ m$ d K6 l, j2 C4 B
}/ l" N/ c& k$ v" F. i. V* `
}% U2 u! r4 j6 {: c
if(isLast)
7 X, V9 L9 `% l2 o {
3 Q0 j; p0 i+ P" D if(debug); K, C1 {+ Q$ G& F8 O& b/ e" v9 r8 B, x
{: @1 r9 p6 [* v$ \- r0 g' n: P
alert("last!!");) e$ A9 a$ T* @7 P* q) U
}
) x- x! `1 x& {1 I! f' w if((Math.abs(orgRGB[0]-255)<=minValue)&&(Math.abs(orgRGB[1]-255)<=minValue)&&(Math.abs(orgRGB[2]-255)<=minValue))! u7 o2 H- j0 k6 I
{( f1 R/ ~- g/ t: P' f- h
orgNode.parentNode.removeChild(orgNode);
& G$ e5 i/ z& c }
1 Q" C' }8 a( ?5 C, V! G }; R3 s' F* c% p% i5 C
else% \: c8 ^; \' B; z" x) D
{9 M4 b$ V7 b S2 ?8 O
if(debug)$ [$ b: d- W8 ]; @0 }4 p; M% \$ N
{3 f; I0 M/ x K4 R* H
alert("compare color and parent bgcolor!");1 u1 \8 J2 H' x; j, n" g* K
}
5 e% x0 [1 L/ ` parentBgRGB=getRGB(parentBgColor);# \- ]3 ~% T1 I
if((Math.abs(orgRGB[0]-parentBgRGB[0])<=minValue)&&(Math.abs(orgRGB[1]-parentBgRGB[1])<=minValue)&&(Math.abs(orgRGB[2]-parentBgRGB[2])<=minValue))% z3 w( J- x* V$ y; J% k
{! p/ m6 W& _' a
orgNode.parentNode.removeChild(orgNode); - y4 Q2 U& x4 S% A
}
7 o- R" `+ J7 p$ | }& U3 x7 [' k% t7 A& s6 N
}, s0 l! h1 d5 r, u p' i
}! F8 t; V& z8 C; `1 b
}
9 j* h( y9 i5 j }
2 x6 M& x2 F7 n& g& i. ~! r
8 z! M/ T" U4 W2 j8 B/ u1 s
+ k% y# n8 H8 w8 r( K9 ? var itemFrames = page.getElementsByTagName("frame");
$ ?/ M0 i8 { {+ H' ^. z ] var itemiFrames = page.getElementsByTagName("iframe");, M3 o4 W5 B2 n' {" ]
# t. J7 a+ _, Y7 i8 a7 C var frame, iframe;; T0 N9 q! U) J: D, n% y
if (itemFrames.length > 0)
' ]7 ^' ]+ u- s( G# E" v% O0 m8 G {
2 f! J3 |% t. y2 I+ z for (var i = 0 ; i< itemFrames.length ; i++) & I% ~: G c$ k$ x$ [) _/ G
{
, s T, c+ u! ?" i frame = itemFrames.contentDocument;4 ~& m0 W5 R& ~+ E
this.RemoveHide(frame,objname);
" S" n8 a$ O6 c5 i }
: W2 t. l! R8 j: }1 U }
/ B2 E3 u1 ?& z& K+ ~ if (itemiFrames.length > 0)
( Q2 {' G2 |& D2 t0 p( ?/ } {) ?& n$ H6 |, p- P7 ^! I) t" [! }
for (var i = 0 ; i < itemiFrames.length ; i++) 8 D& @/ a2 h- N4 } i8 t3 G
{
/ f& t2 h$ t" e# v$ Z iframe = itemiFrames.contentDocument;
; J* r o0 S" B$ W0 V1 C7 O this.RemoveHide(iframe,objname);
) A$ d, Z4 k7 \& ]$ N0 r }$ K) j9 k# [5 o" \
} u( _2 i8 L& Y- K0 s: ^
}8 [$ \/ ?$ a [8 s9 ~ Q
catch(e). G* N0 H' i% f, s' u2 \/ _
{
8 Q0 \& U* j) G' |. p6 d! ?' m if(debug)
4 H4 x' g6 m9 h3 d' Z {
! H* i, F% o1 s0 }. O. C alert(e.message);) H) x' W: T8 i/ m* d7 W( Y7 o' E6 C
}/ h; r! ^% N i. X
}$ S; N, s* i2 k1 K8 b1 G7 w! T8 P# u
}
/ w" P* s" ]7 N9 c4 Z4 f- g 7 f/ g' z. ~( [6 n& m( }
}* d+ Y& K) y2 g! U
$ ^) x" v5 A% ^6 d* Ofunction getRGB(colorString)
2 z3 V7 K0 i5 O8 j: g{
% i! d3 m& v" Q7 o var RGB = new Array;0 u' \) L/ o8 q' q" r3 O9 v6 C. X
var tempSting=colorString.substring(4,colorString.length-1);
7 j T$ M$ m7 s# ?% j9 g) ? var tempArray=tempSting.split(",");
* {, a1 r/ V m' |* ^ ^: x" ]2 F
RGB[0]=parseInt(tempArray[0]);' d7 A- X6 _2 i$ [: b& N
RGB[1]=parseInt(tempArray[1]);
3 y+ O: i/ [8 L8 f% s RGB[2]=parseInt(tempArray[2]);# o. C! P. g: X" t
. q' {- P* u( S) j& W* Q; M8 m return RGB;1 x s" Z1 c( V) c/ t
}6 \" e! _- V0 V$ I1 I! w0 n
function keys(evt)
/ ] K+ ^6 V( ~ {
3 N9 B4 ^; x: ~ if(evt.ctrlKey && evt.keyCode=="81") ; ]' Q2 F. E- J/ r/ }/ v
{
/ r. H2 J: e0 {7 a1 u& n- @7 j4 p3 h CleanHideObj.on(0,1);- v: c' c- Y. \% o" [ P
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q"); . W3 c A+ X! \: O3 g; o
% }3 W5 k6 v6 s) x/ }( L# C
}
2 I+ o& [+ u3 c: f+ Q } 8 B2 r+ B; A6 C' `& [4 x0 ?. Q
document.addEventListener('keydown', keys, false);
: @7 p1 X7 Q# {0 k5 e; AGM_registerMenuCommand ('Clean Hide',. ]0 I# T% T G1 _& s: ^
function(e){$ t9 n4 R7 ~9 V7 c- o6 ~
CleanHideObj.on(0,1)1 S( \- ?& Z# p! Y9 N7 \6 x9 i
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");
0 b g3 ^! M. I8 J0 f});( }$ |" B9 M) x$ u$ Y* p# L/ J) x0 u
|
评分
-
查看全部评分
|