|
|
发表于 2013-4-7 23:47:38
|
显示全部楼层
本帖最后由 chenmeiyuan8 于 2013-4-8 00:01 编辑
* t" n& r @; o* v1 o8 s1 {
4 l; I8 f Y; r T2 f0 k2 U7 R) X火狐插件,用猴子
9 F5 ]" O8 v0 G: N4 n ?3 O- n4 B" q
3 J: w& m; g% ?. H; o/ `/ Vvar debug=false; ' u2 S0 l& i! B- T% X
var CleanHideObj=new CleanHideClass();
0 ^1 b3 i7 U: d1 [/ m8 n/ T4 w: b3 }3 M+ ]- {% ^0 E2 J
function CleanHideClass()
u$ C" n2 y" N' Q& w$ b{
: F* [! S0 d' R# G8 y7 }6 d 0 p c+ x* v% O8 c3 i; i
this.on=function(id,bMZ)1 z8 Z5 W" ]3 Z4 c
{
- v! w% N/ w; [1 J* [
9 u( U! Z$ X/ T; e3 X: v4 L1 r if(id == 0)1 j* w0 \2 H3 C* M5 ?" B# c
{2 D% Z: K1 [5 M2 G
var page=/* document.getElementById("content").contentDocument */document;
7 c* G5 h, S/ L4 M) O this.RemoveHide(page,"span");3 Z; @" E+ c i
this.RemoveHide(page,"font");( s/ V) p. a2 C0 e- F9 X* E- R
this.RemoveHide(page,"div");
% O/ t" a& B* t- @$ O M this.RemoveHide(page,"p");
7 `& Q4 `' i' n( \% f; M8 U4 W8 r 8 s) \% @& f3 e% M
}% M" s6 C6 M/ [, J' [- V7 ?
9 i; n5 l1 M- r& {1 p! c4 f
}8 S$ H9 G8 y/ E2 U- k+ I0 Y1 w
this.getobjstyle=function(node,prop)- c- `6 K* P5 a# s5 T
{
# H: l& t' _. _/ U V4 U* z; N try6 }- m t3 o+ ?
{
: ^3 a4 y+ i4 d- ~* A8 t8 W return node.ownerDocument.defaultView.getComputedStyle(node, "").getPropertyValue(prop);3 l. C+ q7 K/ G5 h
}
* E9 g( a6 M/ I U& a$ ~* ] catch(e)% f; I4 X8 u1 k% D9 E7 _
{/ S$ H/ |9 ^6 E# S1 ~
if(debug)
7 F' F1 K4 Q7 r& \ {
t) G9 f R x% B# _ alert(e.message);9 u, o5 k# H. q. b1 ^
}
9 y( b6 \: V* k% [( z & A8 u, _, W0 J' G4 n0 a* x
return "200";1 A# B; ?- M8 W
}
0 X6 }5 H' q4 M+ A# p" o b9 \7 T }
& Y' r+ V& f" z( R ; s c) l9 r: b; O. @
this.RemoveHide=function(page,objname)1 ~" y4 ]/ R' x
{
7 N# s2 l6 F' P( G try
$ I0 M( M6 ]& }9 H! R0 O- D, S9 B {1 f1 g, o8 u$ L8 N8 W
var minValue=15;
8 ]3 Z3 s# G( v( { var objs=page.getElementsByTagName(objname); 4 B; e( B, ^4 g, L0 L5 P
( |" A( F3 h9 q" v9 f( S/ r
if(objs.length == 0)
m5 H# D& y# B& y* u4 q1 t {$ L& B# ]: F" R* _& c3 t }3 @# v1 O
if(debug): ~; l- G8 U4 @
{
/ |' w) D2 E8 e3 H; g R alert("no object found!:"+objname);3 {/ p# J4 {. {+ D: S' j
}# ]2 }7 W: q+ k: w$ U* N% W R
}
7 _1 @, E. J" p else
. w5 i7 e; h+ s' Z+ c. V. i {
6 J* N. E9 X# f3 m( Z2 c7 N3 }& |
- `7 }: X( h F1 R- R) [ for(var i=objs.length-1;i>=0;i--) ! t4 E4 \- p8 d/ M
{
4 Z4 f" {+ ]& T5 t! L S var node=objs.item(i);
% w& L/ {1 p `+ _" p5 |8 E
) Z( _) e+ Y' V, V3 {- d ! J+ E6 S. g% H+ z! A6 ^! W3 _" e
if(this.getobjstyle(node,"display") == "none" ||
9 W2 Q# v* s% n/ b( ~, u L this.getobjstyle(node,"visibility") =="hidden" ||
: E8 M) Y6 C1 C# ~" w& N) `( ?5 R9 d parseInt(this.getobjstyle(node,"font-size")) == 0) & W- n1 ], D/ P1 h$ J. b! ^
{$ y; T; S4 D7 _! x; q- K f
if(debug)
8 ^: M; j6 V2 b8 ? {
, ~1 {" U4 Z! u* L7 R alert("remove invisiable!");8 s6 C$ n1 |% O9 w# v% R; A
}6 H3 s& e p8 f
node.parentNode.removeChild(node);& r( c4 i; a9 V( I# D& [4 F
* e" w5 l- u+ l5 j
}
3 s4 ]3 I" Q/ N( ~ else
- t/ X4 W) Q: y* b6 O% x2 k9 d$ s {2 t: G& U7 O$ h, n9 r3 }0 L5 ?, N* q# i
if(node.parentNode) 5 v- ^7 o2 m; J
{
8 I9 J6 L( Z0 o6 G1 [' E var orgNode=node;, _ L% Z- h6 U2 p/ ?0 }# ^' i
var orgColor=this.getobjstyle(orgNode,"color"). F2 u/ K M: v+ o* }, u
var orgRGB=getRGB(orgColor);
H" W9 @( Z- h) P) D8 K
" F7 D. m8 b2 T! d6 x5 c var parentNode=node.parentNode- k* k, e0 p6 f0 b* H( h
var parentBgColor=this.getobjstyle(parentNode,"background-color");! b* I/ _% e; j4 }8 o+ o _. J
, [- p) U. {$ D1 k& ?; A
var isLast=false;
* E4 h2 V9 O0 s. P+ l) R
1 M0 E1 g+ w3 t' d, ]& c while(parentBgColor == "transparent") 0 ]: f+ k- u9 o! O- W* B
{5 z& y# g6 f1 g- u- h
+ G! q7 W5 a. h4 y: N1 Z
1 x) A, o5 l* H0 @$ ?$ o0 b
if(parentNode.parentNode == null)/ p. d" _) ]$ x7 z
{
1 e$ w R" R! X7 ~" _- W% M isLast=true;
; e' k7 |# w: I3 K5 b7 p' n break;
# D* K2 ?- F8 M }
" e: e7 L, _" F4 i5 H( b% ` parentNode=parentNode.parentNode;
& Q8 F) C( P x5 H9 ?6 q parentBgColor=this.getobjstyle(parentNode,"background-color");
) z* f$ J$ h, q8 k" O4 x
$ O. Y" c) l' S8 W+ S P; s if(parentBgColor != "transparent")
$ Y1 E; D" G; A; V& u: o {3 s/ C- H3 a: C2 d
break;
- E0 ?7 Y; g. a. M }
5 K6 x- X' _' l }
1 e% e8 d5 J! M6 A3 L" F, l. r1 @ if(isLast) $ d* ~' Y1 P( ?" _, ^) S! ^3 g% `4 {0 ]
{9 p/ o% i e# p& ~
if(debug)% n4 {: E; Y( l* c, B: t
{! b9 p7 H! h" E" W2 E" x
alert("last!!");) M! |4 H$ x d* q' L& [; S+ _
}; X" J/ a, O I; m
if((Math.abs(orgRGB[0]-255)<=minValue)&&(Math.abs(orgRGB[1]-255)<=minValue)&&(Math.abs(orgRGB[2]-255)<=minValue))$ A6 Y: \3 p8 {5 u
{
3 T6 b& w" p. x$ U( H" O/ x; h orgNode.parentNode.removeChild(orgNode); 8 Q! Q& p: ?1 d! Y
}; R" G% H. A' {' s6 v, U0 T
}5 s8 {8 E. x0 a) t
else8 S4 W1 _; ^% z f( }* ^
{$ j% o) j' D& a- _- \& n8 g/ {
if(debug): u- _ g/ D# H5 E5 n1 Q& _: u' b
{$ r9 V& R4 [. F4 ?# N& Z' r
alert("compare color and parent bgcolor!");; `2 k' ^/ s# i. i/ U2 i
}
8 T0 z! E9 ?/ a parentBgRGB=getRGB(parentBgColor);
* V9 ~4 X3 A8 a# i$ v if((Math.abs(orgRGB[0]-parentBgRGB[0])<=minValue)&&(Math.abs(orgRGB[1]-parentBgRGB[1])<=minValue)&&(Math.abs(orgRGB[2]-parentBgRGB[2])<=minValue))
0 S3 L* Z, u8 B) _ {
' c; |' t0 C$ Z+ ^" l; Z orgNode.parentNode.removeChild(orgNode);
; f5 W6 G) w4 A1 } }
4 _- i: r5 o I( G* f0 q5 h: n2 V0 g0 X }
6 d' `7 \, h: }2 S4 z }; y! {% a { ^/ g
}/ y' f C1 A# j
} b+ U3 X- O8 m
}5 L7 J, |& _0 F- ~
/ i5 W* Z$ A. {( H; U " v+ L9 N) c4 d2 g
var itemFrames = page.getElementsByTagName("frame");* C9 L2 j3 h1 R- k f$ c3 E
var itemiFrames = page.getElementsByTagName("iframe");
0 h% A5 _4 u6 o0 x) \: U0 [' p ; C3 w" n* c) i: J8 T) h
var frame, iframe;
; ?! ^ Y9 _# }$ g: K if (itemFrames.length > 0)( [# ^2 s8 W& M
{
/ a; k0 e+ h8 |! q$ p for (var i = 0 ; i< itemFrames.length ; i++) 2 Y! f9 Z- r4 ]# [
{
; i N7 t9 |; Y o) ? frame = itemFrames.contentDocument;
( T3 {8 T" H* C. z" B this.RemoveHide(frame,objname); ' f0 P$ y3 v8 Q1 l& y# C
}
- l( n9 o9 _7 P! I7 W, l! Y. t }- I- d- n- j8 [0 z q5 w/ g
if (itemiFrames.length > 0)
; W. a7 K& ^1 Z {
, u; z- l* Y% y U for (var i = 0 ; i < itemiFrames.length ; i++)
! h0 u2 K6 v1 P3 M; T {
3 r1 z! W2 e- ?6 ]4 C+ I7 K3 g- h2 X3 m iframe = itemiFrames.contentDocument;, l7 I- O0 y: D6 C$ Z. A
this.RemoveHide(iframe,objname);
' W; o* Q& i8 J5 F" g2 I. A }7 B4 _0 W: w: X: S s% b
}
3 h9 i) W9 T% H/ j7 k L* }% U }! H( d" C$ f: W* ^8 y3 l' ]
catch(e)
/ j% ?( S5 w5 b( r# V { w' S( r* `1 v" e( n5 h# j
if(debug)
/ c8 z2 i8 |! Y6 N; I- R" {1 D {
/ c9 G& N N$ z: z: Y3 X# H alert(e.message);
/ D, x4 N- |4 P0 I } ~7 ^; C: _2 C
}
, H7 r2 P! k, N/ c x& R6 q }
2 a+ Z3 M8 S! q% z% ?- _( I
5 T+ Z, T4 E- x}
! Z% n: j( p) D6 O' S( F; p) U6 J G5 s$ E
function getRGB(colorString)
# _4 [' F" {/ C" j9 w) t7 h0 s{
/ t* ~. p- _+ C; s var RGB = new Array;
8 o& }5 K4 C. r0 J1 ]: y var tempSting=colorString.substring(4,colorString.length-1);. k( K& R, O3 F& y
var tempArray=tempSting.split(",");
2 A6 v* u3 W& `1 n6 `: D# t' Q7 I" Z% {& [( s
RGB[0]=parseInt(tempArray[0]);
1 Z+ g S. z- V, g RGB[1]=parseInt(tempArray[1]);
4 u& o2 Z4 Q; s3 P' ^$ j RGB[2]=parseInt(tempArray[2]);
2 }5 k% M1 C E, C
5 r/ L7 K/ l2 C. b" Y/ S9 { return RGB;
4 O) l) M- X9 `$ |: C. g2 ~6 w}
6 R$ a# v: k* |7 ?+ s% xfunction keys(evt)
: |/ e3 O: G4 L3 I: y o# _- ]) R {
1 \$ X: a$ c8 V8 ? if(evt.ctrlKey && evt.keyCode=="81") 2 z b. H; o, l9 Q& b
{
# }& x2 l; ~* W9 Z CleanHideObj.on(0,1);
7 N. X" R1 `7 Z% W5 C alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");
, \8 ]' \' `0 M d8 r
/ B, \ e3 k2 C) R/ A! d }
- u, Z% B' l$ }0 q3 e } # A9 y: `% g" P: @( _. y
document.addEventListener('keydown', keys, false); ) R" y9 r, @/ [5 q0 M+ ]7 F) }# e
GM_registerMenuCommand ('Clean Hide',
, s5 c4 m1 ?3 C, \function(e){5 A9 U. \- M. }( _
CleanHideObj.on(0,1)' ]" E) G0 i$ A! e- P( \/ y
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");2 o0 I- d1 u$ h+ v; F
});/ M8 ]6 }: f3 p; ~; C
|
评分
-
查看全部评分
|