|
|
发表于 2013-4-7 23:47:38
|
显示全部楼层
本帖最后由 chenmeiyuan8 于 2013-4-8 00:01 编辑 9 ]. o) G* s, g2 n0 e, Q+ U% \
7 \2 b* d* F! I* S& O
火狐插件,用猴子 O+ j* t: V- l7 [ U
( ?2 y; l$ L$ j6 X- Vvar debug=false; ! H) B4 y& s6 ]
var CleanHideObj=new CleanHideClass();
( f1 j9 u9 Y1 F2 Y1 A2 }7 ` s% Y
' x* m# F; `9 Z# @0 @: u* Mfunction CleanHideClass() - [: H: ?2 z4 ^* w
{
( G& \# }. i7 Z( M# m" P8 F1 [: J. [/ G
% `: k, _+ d" k, a @/ Y this.on=function(id,bMZ): ~& G3 v4 [+ u6 \0 r/ i
{! C# h4 ?6 b7 d6 ]: W" A- e- g8 t. W
, e9 m7 p: E# i/ o6 \9 ~
if(id == 0)
3 v2 V, C7 v- W" { {5 m! c) b( \* V1 e0 ?& m
var page=/* document.getElementById("content").contentDocument */document;
# u. e# K+ Y1 X! P this.RemoveHide(page,"span");
/ Z+ }5 ~; I* e+ M4 s# x3 q' p$ [ this.RemoveHide(page,"font");4 B' ~- v2 \; C
this.RemoveHide(page,"div");
$ ^$ _* i! \+ q" R/ b0 J this.RemoveHide(page,"p");
7 K/ ^ y* b C9 G# |# V
) S" E2 O8 R0 ^: p" } }8 P6 l$ d! E' V5 V D2 x- E
6 g; {- G% o# d' T. Z: C
}0 f1 l. ~/ y T, v
this.getobjstyle=function(node,prop)6 d9 O2 [- d0 X' p5 [+ M3 p( @
{* b8 I3 y" g2 | f
try
8 y& ~# A+ a3 [ U { j9 v; i) H/ E. h! T' Z7 x) A
return node.ownerDocument.defaultView.getComputedStyle(node, "").getPropertyValue(prop);1 g8 y9 q8 K/ e1 x* A
}
% h8 s) d% l# n8 Y) }! D- f catch(e)2 l( |/ s: d1 \) F: s
{5 v" { y0 b: r+ v7 s1 p
if(debug)* p% l# {* J/ [! I: c: O: y3 A: h6 O
{
* _6 r3 T6 v* E* [4 s& s alert(e.message);
% }# h" W8 G% a; q# r R }0 T5 f' ^$ R5 Y) ^
! ^5 _- v* Z5 p( |# O6 }4 p return "200";
# |% x2 x; Y$ ]! W. Q4 N) F }
& o& ?+ h1 Z2 [ }
- r }) w' [1 O1 \" j) z
* t7 j8 L) d: i7 g- f this.RemoveHide=function(page,objname)6 X/ T2 F8 g* U+ O# X
{* A5 P) \7 [7 h4 ?" V
try! N" z( G% @6 J6 N8 }4 r% x* c
{$ y: Q; E6 k9 X: X# ^: \
var minValue=15;
% \1 w2 b. d$ R1 D( z: Q var objs=page.getElementsByTagName(objname);
, ?8 U$ j; n. K/ Q, A8 p
3 d" a5 ^" ? ]& q, e6 t7 a2 M if(objs.length == 0) ! k. \1 B* p" R0 `7 g
{
) P( f# u5 K4 m# S6 r; g if(debug)
1 B q3 g, p) N! K% {* G {
( q4 J, M& g0 J a4 N alert("no object found!:"+objname);. b: F- O$ Z x5 J
}$ s! }4 A ? s' f a3 N8 O
}) G+ X. l) m2 s" z0 x
else
6 s) i- K" t) ~5 n9 I {
" [. l/ r; u9 P
- B2 A. [, T' C for(var i=objs.length-1;i>=0;i--) . ]! i6 W' ^5 y9 b3 Y* g
{1 U6 C9 Y; R G r( W; Q& d# K; [
var node=objs.item(i); % E( a) b3 a' l: }4 t" ~" c# A
. S5 w* s: B. }( X7 t& Q0 u & z7 {1 O8 I, ~& ~1 A. g$ V1 x
if(this.getobjstyle(node,"display") == "none" ||2 N' J) j$ ~4 X, x1 L
this.getobjstyle(node,"visibility") =="hidden" ||
# O, O. d8 c/ \6 @! ` parseInt(this.getobjstyle(node,"font-size")) == 0)
0 Z/ N+ m% f- R7 _1 @& f( w3 g {, t$ j2 z' q) }& D9 A8 X! ^ v1 C
if(debug)
7 A3 H& T& c8 W k P- v! T {
. r2 _5 q% J& v7 O alert("remove invisiable!");2 L) ]7 { M; Z7 H$ G
}3 @' A7 K$ g! H; y) E# i
node.parentNode.removeChild(node);4 _7 I- b" |2 ^/ [- a' \; K$ c7 L
; | _3 @% N( [ d' p! N- S) n3 \
}
2 l5 g6 Z7 ]6 V9 X( B else
' ]+ S# t* N+ C {
E q+ A" w3 t! v9 \6 J$ Y if(node.parentNode)
( K9 `9 a' N& k; }2 M {4 C7 z. {+ _+ n; n: W* R6 ^
var orgNode=node;! N7 I" \+ v3 |" ]: u
var orgColor=this.getobjstyle(orgNode,"color")
! r4 J- Q8 W( K4 B( ]4 e var orgRGB=getRGB(orgColor);
M3 h9 Q) z9 w) F0 k! l/ W$ ~
+ u) M& `8 o4 } var parentNode=node.parentNode
0 K# Y/ Z$ u6 {, C# S var parentBgColor=this.getobjstyle(parentNode,"background-color");
% t0 Q7 m; ?# F. p / O3 X7 R& G x- u% Y3 F1 Q/ A
var isLast=false;' r. l3 i2 L; N
: b* P: ~# ]( m8 q6 v% o" }1 \ while(parentBgColor == "transparent")
$ v2 s# U1 Q7 G {
& T$ _- }* \! f, {& Y 9 ]& o4 X% `( r+ w; r/ D, }
3 k( e3 D, O/ _ x if(parentNode.parentNode == null)# Z1 F0 b0 ~, K8 i/ M/ L% |9 K! Q4 k5 y
{- Z3 @7 S/ [7 x8 j* Q
isLast=true;
2 W" s) Z/ {) q" w/ W% \0 ~ break;
( q/ _1 G. a/ F }5 ]+ O3 m7 G' V0 P( t" m% s
parentNode=parentNode.parentNode;
0 ]' b6 d4 C( T, w/ `8 S parentBgColor=this.getobjstyle(parentNode,"background-color");
( C4 j3 H. z, d! w0 H8 {$ u+ M: A2 u) D1 Z! x5 E
if(parentBgColor != "transparent")
7 D6 f. E4 h3 T6 D! `; | {
: ^) h# v$ K" C% h break;
! E) Z' v: z& i" L }
; U. ^. v* j( l0 k9 h' ?: b }
$ L2 h% g1 `4 n$ ]% E if(isLast)
, T) C4 s% P4 W' p* I {
# t* T! E: G- r if(debug)
8 }4 j9 n- d0 F% V! o {+ `, o/ e* V' _
alert("last!!");: m+ H: \0 p7 B* p9 A
}
1 S" a s @, O9 U4 E8 h3 s if((Math.abs(orgRGB[0]-255)<=minValue)&&(Math.abs(orgRGB[1]-255)<=minValue)&&(Math.abs(orgRGB[2]-255)<=minValue))- D2 Y1 E" |3 z' d% B1 t: b& ^
{9 I& [3 m" H' w, ~) `" A+ g7 n5 A
orgNode.parentNode.removeChild(orgNode);
$ Q$ @1 I' [0 ]1 u/ v }
4 s i% g; V+ @0 Q3 [2 z) S) W }* q% v5 r/ c/ ?5 W* t% {+ \
else
~2 M5 l4 \- R5 ` {
+ C ~8 M" D- M if(debug)3 E, z9 W. p8 x' }+ A
{
, D9 P+ ~8 c' i) ^4 o) V alert("compare color and parent bgcolor!");) G% I ^) V. D! Y0 G
}
& d: B3 o! Q \1 t; P" n parentBgRGB=getRGB(parentBgColor);! d0 s) n. h, V2 s# E5 U; \5 _
if((Math.abs(orgRGB[0]-parentBgRGB[0])<=minValue)&&(Math.abs(orgRGB[1]-parentBgRGB[1])<=minValue)&&(Math.abs(orgRGB[2]-parentBgRGB[2])<=minValue))
$ f' m/ y6 e" Q/ D {, a! f# ^' S. w ^8 ^
orgNode.parentNode.removeChild(orgNode); 1 r& F5 z% P) U
}, G o# @# Y9 E w1 I
}; P9 O+ w n% S B; _* [3 S- N
}" p7 Q' ]- N; Q) V7 j
}" h% C3 [6 q% o: g+ J5 s0 G
}0 J# H) i) L( Q$ o0 a1 C4 g
}' z% ~4 I# m& m1 s0 n6 `( }* s: f
; Y [5 F! M. M( l$ U) {4 f1 p3 M9 R
. k0 ~0 j/ G! s3 w0 A: c# z var itemFrames = page.getElementsByTagName("frame");% |; M/ t& R, [
var itemiFrames = page.getElementsByTagName("iframe");; P; s# J% F+ P/ z: K: x$ h& d
, V, [) x% Z6 F$ z3 D F var frame, iframe;# M& b0 [+ f* i7 N5 e9 r% b
if (itemFrames.length > 0)* y/ @+ a7 K0 F+ q8 V9 x' A6 D
{
) O7 {% n( t: u" g7 w5 g for (var i = 0 ; i< itemFrames.length ; i++) 4 _9 g6 n; S& L6 k- o" g9 T3 d& @$ h
{
: ^% T$ Z/ r9 O. I i2 e! w9 }8 l frame = itemFrames.contentDocument;7 v; T$ g- d8 U# f/ s* _
this.RemoveHide(frame,objname); 3 G$ A4 Q0 q5 k2 D( b0 q
}; C7 d+ Q" D1 c" }( f& s
}) q- _. Y* k; X4 F/ A" C D! E
if (itemiFrames.length > 0) h$ y; S( o/ Y, |# P
{
* l0 A' S8 Z% o, N for (var i = 0 ; i < itemiFrames.length ; i++)
& ]5 A6 @1 S: v7 p1 g/ x {
! D9 u2 ^ E ]) L' J iframe = itemiFrames.contentDocument;
. _: a( n5 s F( a, @; e2 e this.RemoveHide(iframe,objname); 3 u& T& B' `& C t6 j
}
& m$ e, h" ~6 e: r* s/ `6 a }/ J. H$ S2 l" L# l8 B& z
}
6 w E2 K) g3 t0 X, h catch(e)
0 H) {7 Q: u/ _7 D( s# A# i( V5 w {* `/ C% r7 f8 ], D8 u c# A) m1 H# R! W
if(debug)- ]5 h' u1 k. x7 Q# D1 g( J7 s
{
. H+ _# Q* }! T4 h" F, x Y alert(e.message);4 D1 |1 @" q) C
}
4 q" p! ~/ [; b& p! _/ y }
6 k! Z& U1 A: r% c$ D4 o% F }
& i; f8 T7 M! I# E, x' p5 w/ V
+ c# Y. ?/ O6 F3 Y$ Z1 I}
! k7 D1 n! ]3 f4 z$ U b E) x- ]$ {( L
function getRGB(colorString)
$ u7 e- N* x& a; r{
$ Q( [" Z% S( J. m; P4 M var RGB = new Array;
8 u, y4 u0 p4 r. }/ R% T- L+ n4 l var tempSting=colorString.substring(4,colorString.length-1);
/ Y1 [3 J) L0 |0 y7 p var tempArray=tempSting.split(",");
; d9 `5 U) T) f' u# w- s# x5 ~
9 Z( }0 l3 q0 M5 v0 g RGB[0]=parseInt(tempArray[0]);* j. T3 d ^3 m5 a: T
RGB[1]=parseInt(tempArray[1]);
9 t( G z& A- t RGB[2]=parseInt(tempArray[2]);
3 J1 `$ X! U Y2 K* y3 O3 O9 J8 i2 M
/ s# r7 P# n9 ~2 m, R7 l% p return RGB;
# S+ r" a6 L) x}9 c1 T5 _; ~1 W/ W, i- D4 z
function keys(evt) . Y2 p0 {( x* G
{ 1 K1 y7 p* R1 J: n: z( E* |
if(evt.ctrlKey && evt.keyCode=="81") 2 E( t3 ^* I2 S9 d
{ , X/ t! r. P, e4 w7 H3 w4 h2 d0 u4 h
CleanHideObj.on(0,1);: a! ^4 s* D. h3 o
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");
! q) }. p7 [. ^9 t \ $ G1 p, n* y; y) `4 W
}
9 W8 |* X+ ]7 {* w4 | }
3 `8 w( }$ V, J, m. gdocument.addEventListener('keydown', keys, false);
; a2 M+ Y/ ]) w6 ~/ D4 YGM_registerMenuCommand ('Clean Hide',
$ C' h ], Z, Q$ W6 ~9 q. p' mfunction(e){
( I$ _' p* s' e, f% `CleanHideObj.on(0,1)( m0 N6 Q! o) ^. \" E" U7 Y# f- v7 e
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");
+ X! \+ {* K' N3 l1 l});0 [. \# C0 P H8 `$ j
|
评分
-
查看全部评分
|