|
|
发表于 2013-4-7 23:47:38
|
显示全部楼层
本帖最后由 chenmeiyuan8 于 2013-4-8 00:01 编辑
' p2 F! g3 \; P# x/ S8 V) U' U3 |: D5 I) i2 f6 I5 A
火狐插件,用猴子8 X: e9 X9 R! f0 i8 [: z4 k2 |7 A
9 h1 g3 E0 y, L5 K1 M0 D5 hvar debug=false; ! X/ X5 A3 U6 M; i8 b Z, T7 \
var CleanHideObj=new CleanHideClass();6 I1 t- @ l8 j6 r# {; r
8 Y7 J& D1 R; c, q; e7 b. R b
function CleanHideClass() 1 {1 n" ?4 O# s" E& _1 l3 u! m
{
# T$ K7 O: y: B; Q7 K' F! b6 o- u & T9 D! N" N+ h& D7 y" f1 P9 }) ]
this.on=function(id,bMZ)
; F" [1 R2 K2 p- X W! \ {% ^0 T/ |3 M9 v; g
" L6 d" x0 y/ L+ C* q5 U
if(id == 0)
# U- z- R( \0 n0 p" c {
]7 ~. A, G/ A0 q var page=/* document.getElementById("content").contentDocument */document; ( ]8 s9 r* c1 a
this.RemoveHide(page,"span");/ i! f; c5 h4 b0 V$ a- `+ ^
this.RemoveHide(page,"font");
8 g+ B3 u1 U* y& ?6 t% ^* v/ Q this.RemoveHide(page,"div");
7 f7 Z- H; j/ U9 D5 z2 k7 k9 B this.RemoveHide(page,"p");! N0 j% U8 V: r) |
& V: o) o( a, c; B/ \ }
, _9 V: ?1 \, b; T3 n8 \' Q # [ p4 H( V$ ]7 M5 G
}1 T: b9 T( j3 l
this.getobjstyle=function(node,prop)) i: ]! X+ z: L: A/ |+ t
{+ @; J6 [& v+ y8 j1 y
try* T T1 K# n2 Y9 X2 V! @2 l
{
7 k0 {! y9 D9 x6 ]* r# d* e- d* x return node.ownerDocument.defaultView.getComputedStyle(node, "").getPropertyValue(prop);
8 v' H0 `$ C. B/ I* E) S6 q }
. Q. T6 g0 M( o( `/ ~$ K catch(e)
' J {5 l' j% \! R& h) v/ F {
- |1 ]9 m% e0 S5 C: L2 G2 t if(debug), [* b. n" i7 J# t! g) q9 y& D
{! I2 ?- D2 c3 X6 |; w" Q$ V
alert(e.message);
1 ~1 d z5 S% m) O6 X* L }/ M4 c$ ?- M3 q# y, X
' d9 D0 Q$ W$ l: U7 W4 D
return "200";
3 ?) u0 c6 O7 \2 l' g4 { }
$ `& H6 V7 b# w( n! n2 T* x }
, Y$ p" [* j8 B " n. F6 R! [* Y
this.RemoveHide=function(page,objname)
6 A. o/ k9 l& Z4 u5 [4 H {
: Z/ \4 \3 a; M: s4 X7 ` try
. A9 F4 O) G5 N; b0 T {
6 h6 ~+ U7 ]+ m* n var minValue=15;
$ D! ?/ }5 J; g2 X. w2 J- |) A var objs=page.getElementsByTagName(objname); 2 n* O( G; @( T9 W0 M0 u% [
& R* q& x, o2 i$ ?2 p3 V
if(objs.length == 0)
( D4 c" P7 i8 S. w5 b; v {8 E# _0 J& n# m! H' m0 k
if(debug)& k0 u X& n5 K+ R& V1 f$ c( s
{" C* D0 h g# ?. w8 g; a0 ]. T
alert("no object found!:"+objname);/ z$ v E4 h, V: p0 Y- u
}8 v3 ^' K! a" m# r0 i! \$ S
}
7 q4 S0 O0 E; N; T+ D else* M# Y! l' w3 ]% C2 A; O S
{; u" S, P, h) d* V, A
! l! D+ b4 i: w* P" A. D
for(var i=objs.length-1;i>=0;i--)
9 H$ ^% R# v9 @! z {
_5 D( e2 Q% c var node=objs.item(i);
: f/ @( m4 y* V( T* ?
' C! H: S& e2 s! g2 O& y6 ]
5 G0 _* H" y$ ]& X r2 B) Y0 X/ N if(this.getobjstyle(node,"display") == "none" ||
& M4 o5 \$ f- J( F" j3 k this.getobjstyle(node,"visibility") =="hidden" ||
0 O( Y' h, x& b: r! M parseInt(this.getobjstyle(node,"font-size")) == 0) ; k) Q, ~% I# b4 ?& G. ~
{
0 ], M4 \* I3 {1 M* q7 X if(debug) e7 n' P2 C, w
{' m* G9 g, {% l( A9 _2 f, B6 l' W% P
alert("remove invisiable!");
1 e6 d! t4 T j& N, s: d3 k; k }
C$ v, L- B g. b node.parentNode.removeChild(node);4 G. m; T( U# h5 G0 C$ i8 p
, \6 g5 A$ d/ v4 O
}* x) j0 H* [# K7 v8 u e, j
else ( ?3 l& y( b( ]# ]' I, }9 {, |
{4 g6 Y5 C s8 d4 M$ d9 i, E/ l% G, R
if(node.parentNode) * U6 U) C0 v9 s( Z: O2 o
{
+ V' B$ e' P; B1 ?3 ] var orgNode=node;
+ G. B$ T0 |8 G* l var orgColor=this.getobjstyle(orgNode,"color")
8 l, E1 j+ I" f: i0 J var orgRGB=getRGB(orgColor);
( M( p! d* h. f0 g @ 2 [+ x) s4 K1 C, K( u
var parentNode=node.parentNode5 U1 k0 |- z# A6 L$ e
var parentBgColor=this.getobjstyle(parentNode,"background-color");0 @' j6 I4 T' g' D& l ?
F" P9 {4 i$ x+ D6 X/ O2 v* D1 d var isLast=false;8 @4 T, U4 }- ^+ x- y$ f
! ~1 p7 K2 z& F! I& {
while(parentBgColor == "transparent") . U+ Q; s: Y) a9 p6 V+ U
{$ {5 n/ V# ?7 e. a" e' j
+ H% q3 H& A4 t% c& ^$ @8 w4 y
* C1 _+ G) c p7 t+ A2 [5 M if(parentNode.parentNode == null)$ ?! D( p& R4 {/ H; N9 v- o
{ c! q; [4 H( y! U6 v+ ?
isLast=true;
; o0 Y# t+ |! n' n break;8 N7 ~' D; Q. j1 z$ B* K2 K
}/ k* M' A# w; q" t9 h' k. k D
parentNode=parentNode.parentNode;
3 x( e) a8 y1 O5 o parentBgColor=this.getobjstyle(parentNode,"background-color");
B( @# M% Q7 q; i; I8 g' A# V
j" V4 G g1 k" P/ L if(parentBgColor != "transparent")
+ u( ]; [3 I9 i1 r5 Y7 U {
2 b0 V* M2 `1 L1 w+ o break;
8 Z( J) g3 T7 l5 c7 J; z; v }: m9 ?+ p7 j, q+ u0 Y v/ |+ M
}0 h' d5 v# N9 \% K, _2 J; n
if(isLast) U5 _8 a& Q: A0 t" y6 ~
{
& m7 l5 ? h. P0 }3 }/ Z if(debug)
/ b4 y5 } K* U& x, i/ n/ I {
& p4 s8 W# t( C- B& P alert("last!!");
- D( n% T8 V4 Y }/ K9 \( v3 Q1 W% e% t
if((Math.abs(orgRGB[0]-255)<=minValue)&&(Math.abs(orgRGB[1]-255)<=minValue)&&(Math.abs(orgRGB[2]-255)<=minValue))! [( g4 M ]" t) N& f$ r0 q
{: L. @1 j8 u* j8 t" G
orgNode.parentNode.removeChild(orgNode);
% G2 C1 \/ P$ S" w. x2 C }6 t: P" H2 t, I1 P) b
}
( m- B( V. B# M& ?: x else5 ]0 h: P7 g3 x6 t9 a
{1 C- H% g( z% \- Q
if(debug)
! g6 K' ~4 ]( A- Z! t5 r7 A! d; \ {9 ~$ x( r0 K: x
alert("compare color and parent bgcolor!");
# }$ g' c- ^) X, F" ~. W& ]+ T }* [% u2 F' z5 \: N
parentBgRGB=getRGB(parentBgColor);+ x3 h5 P6 Z# [7 X5 ?
if((Math.abs(orgRGB[0]-parentBgRGB[0])<=minValue)&&(Math.abs(orgRGB[1]-parentBgRGB[1])<=minValue)&&(Math.abs(orgRGB[2]-parentBgRGB[2])<=minValue))5 t7 D( i9 L w# Z1 S" X/ }% X- x" W
{- e7 s- d0 o. @1 w
orgNode.parentNode.removeChild(orgNode);
) c' F5 a* n- v# }9 L3 x2 E+ M }
& k' E$ ~- C" O6 g3 v3 K }9 m. _4 h% Z$ ]. f0 O
}) o T% ], g' X) L
}1 X( C+ [! p8 F# d a
}
* N0 O. m" A: g }
8 e" U- _1 Q; `: O# j ' F2 d" V" Y% b
1 r$ s: [, f- [ var itemFrames = page.getElementsByTagName("frame");
3 C- G# Y8 j) u; A" J var itemiFrames = page.getElementsByTagName("iframe");* {1 F1 D$ r2 ^& c
+ O$ {9 O5 o! s! G$ t
var frame, iframe;4 S; A! R7 V/ l" l5 Y7 G! [9 Y
if (itemFrames.length > 0)( |, X' V* m/ h+ A" f1 G
{
0 F" S8 m/ G ?/ O for (var i = 0 ; i< itemFrames.length ; i++) % X! p; A1 l' ^6 R; r+ [; N& A. a
{) }6 }( S t9 f3 |
frame = itemFrames.contentDocument;
% ]+ U& _8 U; D% o this.RemoveHide(frame,objname); % G- W: A1 _. u
}% Q+ |, H7 d5 x( H8 h; i
}
# ~5 z* N2 t" s# c$ r+ F5 ~7 \! y$ S if (itemiFrames.length > 0). `- k) b2 O2 Z# I/ S- ]! f" y
{
/ r0 ^ J" S6 ^1 f for (var i = 0 ; i < itemiFrames.length ; i++) - B W+ M0 t5 b7 {& a, Q b3 V
{
& V- l8 `% G8 v8 G6 Z" l0 N# ^5 [ iframe = itemiFrames.contentDocument;
/ q4 N6 j8 ~( W+ Y I% i, d7 P1 J this.RemoveHide(iframe,objname); ( B. X& @6 q5 f& G; S* o! A& \1 g- k7 r
}+ `" j. |$ l' m
}+ r# s+ `, o, @, K/ q6 l
}1 F8 x9 R4 ?* C) U5 T+ I/ R5 J
catch(e)' S7 [3 n, E! P# k( w* A9 \
{7 X; r0 ^ {9 u2 y* a1 m! S- ?
if(debug)5 E; V3 s0 _5 ^" M* w8 E2 o
{; h D6 c* ~9 p) I& D# J" T( T
alert(e.message);; ?" W7 X' x/ m) g. \, b" \
}
D& |9 Q7 s6 x% X# @8 j* h }
. |" [& {9 u4 |% F- t }
8 ^6 Q$ l! ]1 S) t1 L* V
- X& ^% `8 V( P) b4 B8 ^" [3 `}
6 p8 i5 U6 [* P1 f: z# B
/ n" H' y6 t- E$ X: t! ufunction getRGB(colorString)
3 C8 h) _5 G! J7 J ~{/ a- N+ ?* K/ R3 O, k2 L
var RGB = new Array;
/ G- x4 Z4 T) n var tempSting=colorString.substring(4,colorString.length-1);6 v) e% q# C7 s- i( \
var tempArray=tempSting.split(",");- o" A+ x, w$ f9 o6 g4 G
/ _0 T/ {/ Y0 U1 q% u* ^+ m' o RGB[0]=parseInt(tempArray[0]);
# C1 ]7 |* ?: J: w, ]4 D6 ~# V { RGB[1]=parseInt(tempArray[1]);9 z/ T/ n! r' F4 U
RGB[2]=parseInt(tempArray[2]);
& {5 c# C0 a2 a
3 P8 u, C g$ h; i return RGB;1 ]' r6 v2 \9 B( O
}
$ s$ j: B6 M7 c4 w" h& n& s7 zfunction keys(evt) 6 D$ F, }. P+ u ?$ G) a1 b
{ * h6 w$ _* z+ i2 X0 r- {
if(evt.ctrlKey && evt.keyCode=="81") ' j6 U2 [3 k- I% W/ ^7 K
{ " F2 ~ l. \& h7 _+ ]) s
CleanHideObj.on(0,1);
L$ q3 v( |9 t5 l0 B6 j alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q"); 9 y' u0 h- ]+ f0 k
2 S0 p2 p2 K# l/ s9 ?! A4 w
} R9 }* y2 y4 R0 o; t$ V
} " u% d) Y, L. ?/ _1 Y. b' F
document.addEventListener('keydown', keys, false);
9 O; R6 ]' |5 N- C. M, RGM_registerMenuCommand ('Clean Hide',
O; C. D9 \- q' z3 yfunction(e){
# \3 c3 g8 c' F2 s4 Q9 |CleanHideObj.on(0,1)6 {% ]' e$ C2 f! \4 r* _* `
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");4 k& ~2 A1 G1 C; t
});
3 O6 r' A2 e7 K' b0 Q" ?9 h |
评分
-
查看全部评分
|