|
发表于 2013-4-7 23:47:38
|
显示全部楼层
本帖最后由 chenmeiyuan8 于 2013-4-8 00:01 编辑 ! P6 A$ f- Y1 f# B( [
% A3 [- \$ K! t- V+ d4 N* y5 O) v火狐插件,用猴子% K3 @6 ]( T$ Y% R' g
+ v0 c( C5 O4 \! u: H; D9 rvar debug=false; # Y* G! d, E7 L& D6 G8 f. B
var CleanHideObj=new CleanHideClass();
/ O! P+ l' x7 z+ X" @$ [8 X& t4 L
function CleanHideClass()
, x* ~+ Q: v: [4 T{ $ w( S/ Q3 u. u( \ n
; U- x$ _- ~! `& p+ q this.on=function(id,bMZ)6 S& h& O/ ~1 H5 j( y) S# _
{
. m5 G& _" b! F / D/ b9 P' z1 \! }- M0 O
if(id == 0)' Y! O1 T# I* p$ v4 \+ y
{# R9 @- C$ S* b: b
var page=/* document.getElementById("content").contentDocument */document; / p% m2 h6 u7 G+ _
this.RemoveHide(page,"span");9 N2 n+ S! h8 x2 ?* [5 E3 G
this.RemoveHide(page,"font");
; ]9 i. X2 s8 A% G# F this.RemoveHide(page,"div"); V _: X$ @. }: I, D
this.RemoveHide(page,"p");" l' w, r) Z% _: W* G! c' {
2 K$ u; w( @( b- W! i/ p& Q
}
" f: \0 O0 b' ?; v 5 ^8 w @( u+ x0 W# c0 Y
}: D, Y8 e h2 Y1 l8 _
this.getobjstyle=function(node,prop)+ E1 \5 M: W. \! ]( B
{" w* r. g" ^6 F/ E
try8 ]8 m# Z2 T; v
{
! v0 V6 r) Y) p# ]1 k$ k" J' ] return node.ownerDocument.defaultView.getComputedStyle(node, "").getPropertyValue(prop);
% m% @5 l! g* i9 g' w } ~1 L" g( D. X1 L3 ]* b
catch(e)
" L' {- _( R: D3 o {# x& g) n" i! A
if(debug)4 m+ o# |. d [# Y
{
# {" }' e5 ` x! x alert(e.message);
5 V' }" B7 P1 h3 C$ y! D) Z }* f! y# @( C8 F9 ^6 S& s2 f# c9 R
' O7 _$ Q* d" w4 R% }
return "200";7 k% N4 c7 T* v6 D) W
}
4 Q ?: |5 Y4 @, d$ Y- K$ n/ Q }! d; C- i2 }* H n4 z
0 t* ^+ c2 X% x! R this.RemoveHide=function(page,objname)2 Y# x1 V6 l& O2 k' |
{
$ N! z( I) Y$ I+ R0 }. r try- K. S4 a' K, }
{# r A5 l! ?8 e& z6 A5 Y
var minValue=15;; ~5 F/ a- ~& `4 c& _- l! h
var objs=page.getElementsByTagName(objname);
% _2 U1 W# Q# g8 U7 I+ b' m5 N+ Z$ J( I
if(objs.length == 0)
" g9 W/ u0 B; J; b6 [% P {
+ f) Q: \/ O5 Q! u- q" ^ if(debug)
, o% O l+ {7 U5 e) [$ i {. f3 n/ {8 W8 V- _
alert("no object found!:"+objname);
9 n! q" @; `( B( o5 F5 [ }3 U5 n, O" @, F$ A; u
}0 ^+ F+ {* U( l' D% ^0 A
else
4 B/ U7 O/ {- C7 Q4 e {
- \3 K# `7 Z& w . G/ D- X% B4 y' k1 x/ F
for(var i=objs.length-1;i>=0;i--) ; w7 k6 J& x- W. r
{
5 b- V% R3 A. k# a6 w var node=objs.item(i); & u; _" Q5 G0 e
2 |+ x; J" W- W" M7 |7 Z
" w8 V- `' l; m' E if(this.getobjstyle(node,"display") == "none" ||
! m0 ^/ Y" k: g g' Q6 n6 [ this.getobjstyle(node,"visibility") =="hidden" ||
, c i8 ?5 v/ r parseInt(this.getobjstyle(node,"font-size")) == 0) + h+ }+ y7 n1 N s8 Y, z
{' c1 M" H, p4 x( Q9 h
if(debug)7 c {( P5 v7 P# j7 I
{
! s e& H/ | q( ] alert("remove invisiable!");, H( Y c; s+ r9 N
}
6 {+ K6 s7 ` ? | node.parentNode.removeChild(node);) Y: C& Z' Y/ O. t! g
& M( n8 y5 q5 m$ _7 E' w7 n" z }! x' B) J- F8 w Q2 k( i& g+ r3 b
else 7 _# J% A [: V) v/ ^/ r4 D
{5 V1 K- [+ @) P5 V
if(node.parentNode)
h2 |7 q6 k' p) i. ^* k4 N {! c5 u& D. \9 ^/ i
var orgNode=node;
& J* |8 c9 k1 g3 `. C3 s; X: k var orgColor=this.getobjstyle(orgNode,"color") Q, e& T5 k& [
var orgRGB=getRGB(orgColor); % i K3 x$ B' [( u4 K
' h" J9 I) K) v9 T/ c var parentNode=node.parentNode
( X. m% @$ V! z' t3 D, V5 b var parentBgColor=this.getobjstyle(parentNode,"background-color");
4 G5 M$ G1 X9 }6 f 1 R+ j$ ^: P3 ?+ T5 v: v
var isLast=false;1 D8 X6 L- {/ R% g7 o5 n& ^; s# b
* c1 |1 H8 ?, e2 T3 ~
while(parentBgColor == "transparent")
, k8 t8 `+ `. P1 j" R {2 M L9 B3 |% L6 z! { v- V/ e& b% \
8 n6 l% q5 J/ Q
' b9 L# e; L5 L; B# s9 b% K! t
if(parentNode.parentNode == null)
0 ] _: d0 J2 r, A' c+ t5 m4 f" q {! i; S- {* J; u9 u& ]
isLast=true;
/ w0 T7 j7 Y* ] break;
/ Z, y4 i c; e1 | }
% S6 U4 v8 j+ l. B# K# } parentNode=parentNode.parentNode;
5 S6 r/ y4 S3 y. o& E, u% R: d4 N# K3 c parentBgColor=this.getobjstyle(parentNode,"background-color");: {' ]- V8 ^2 y
, |! p N' J1 y+ p
if(parentBgColor != "transparent") 7 n1 d# G2 Q1 P1 o/ q4 z
{
1 s! y, Y# L8 \( B. D! V1 M9 \ break;% F- H' {: ?, d+ c5 i3 R; y3 c
}6 [& h. p8 X6 U, s) r3 M: I- X
}# }+ Z r0 s0 S1 y7 Q* B
if(isLast)
2 S% H! l6 T( V8 Q% ^8 K7 c {
' j4 h" `' E- u; G if(debug)
5 `; D2 z+ r5 @% S {
p7 j4 l0 M4 ^" G) q alert("last!!");
* ]. M7 d: h1 Z- G6 k" h }+ D' I. X% N) ^' l
if((Math.abs(orgRGB[0]-255)<=minValue)&&(Math.abs(orgRGB[1]-255)<=minValue)&&(Math.abs(orgRGB[2]-255)<=minValue)) N6 U9 y+ }+ O) F
{
" e2 g, W. {+ I orgNode.parentNode.removeChild(orgNode); : b7 Y8 c9 H& S4 }; G0 l
}
& M2 ?; `. Z9 E6 v }
& f, B+ Y/ e" i: H$ _ else- _; i7 V9 n. w( K/ H1 Y9 D0 Y
{4 O: C7 t: G! n1 c @* N O
if(debug)
# w7 v; v( K3 t- \ {
1 x E* f4 w8 t( j8 [& ?8 S alert("compare color and parent bgcolor!");
/ @( [" ^- N* e4 {2 K }
) f4 s) a# W4 c, x parentBgRGB=getRGB(parentBgColor);$ V/ }) X3 n/ o/ Q3 G# A
if((Math.abs(orgRGB[0]-parentBgRGB[0])<=minValue)&&(Math.abs(orgRGB[1]-parentBgRGB[1])<=minValue)&&(Math.abs(orgRGB[2]-parentBgRGB[2])<=minValue)); @% y1 q' y8 }: S$ ?; W
{
" j% d. z7 T- x3 {- L1 i0 Z+ s+ P orgNode.parentNode.removeChild(orgNode);
( b7 \1 b6 V2 {. o } I) {( t9 i- S, v
}$ T0 o/ n% ]3 v! @. Q4 y
}5 _+ y$ o0 e! n% I! R g1 O' n" C
}( B1 r# [+ z* Z; W: u! H, H b1 P
}4 k! C7 ~$ R# F. N
}
! Y: U& f/ X& ^- ^6 ~
/ Q9 P. O" \6 N" |5 d
+ q& O: z" L( l4 }! `& s8 p; Q; r var itemFrames = page.getElementsByTagName("frame");
& {- W" W5 n% X% @- n var itemiFrames = page.getElementsByTagName("iframe");- ` C5 L# y* d9 |
( ]/ c3 Y' b$ ~2 ]) S var frame, iframe;) f5 H& C) A' n# Z$ ]
if (itemFrames.length > 0)3 Z" b) Q0 q: d) Q- _
{
, H0 e( n1 ^5 ~# ~! l for (var i = 0 ; i< itemFrames.length ; i++) ; k" }( r N: A0 g D5 |3 \
{- G" K' p- w$ P3 \ g5 W
frame = itemFrames.contentDocument;
9 f( [- d. i/ Q$ y' p this.RemoveHide(frame,objname); * F+ Z, h0 b( r$ }
}5 O) V- c- h' K2 A( e
}
4 W% [, u# J3 j3 H: T0 M+ T- n if (itemiFrames.length > 0)
6 N9 g' y; m, d# h9 p {) U5 G; F$ v0 G
for (var i = 0 ; i < itemiFrames.length ; i++)
$ T4 t/ C! P* u, b n# r {; z( ^5 L5 @5 f
iframe = itemiFrames.contentDocument;4 C0 b8 T& p* v6 n) S* W
this.RemoveHide(iframe,objname); 9 U8 L% [( o) P- M1 n
}
- s. w! k3 h$ T" g: q" L; [ k }# A& }* e, j2 t7 o0 _1 p$ F4 d
}
6 |* F* M& d0 c, c w. i) ^% J catch(e)
8 o* t6 C( v+ I {# ]# M# G2 ?6 u7 P( C9 Q# F
if(debug)" c1 R+ @ y/ S
{
2 g3 X' ?' f% m alert(e.message);
; D- K1 s- a% z' W$ y }
( h; ]$ d9 C2 c7 _ }) Y* B8 z0 Y- U% c
}# ^% h0 R! L* ~5 m
/ p& G1 C: T/ o- q8 U}( Z0 e$ N% Y$ w0 u
+ S' G' W: }1 Z: [# C/ L
function getRGB(colorString)
3 {7 I; Y: [$ A: E8 n; V{
\3 v, o2 \ v- K var RGB = new Array;: J& h, G( n9 h8 n4 R3 X
var tempSting=colorString.substring(4,colorString.length-1);* B$ ~3 {# ]5 E2 a' B l
var tempArray=tempSting.split(",");
& A- m ]* c( k% e4 }+ [( n! h2 C4 f% _1 v, \* h) T$ _. D
RGB[0]=parseInt(tempArray[0]);- w1 ~+ s, J* `+ S
RGB[1]=parseInt(tempArray[1]); a! I' P: h% |$ @9 F; k1 U& t- B
RGB[2]=parseInt(tempArray[2]);5 a5 B. M8 f1 l
, g0 j# [! F3 K( h/ T1 ~4 `
return RGB;1 Q4 r. m3 b! f( }6 [* F* `. `
}9 \3 n8 w2 j+ ^( v7 c, w
function keys(evt) ) B" j/ C' n6 ~ E
{ ; y! `, k `0 L5 j7 W" o& C% S4 _
if(evt.ctrlKey && evt.keyCode=="81")
@1 k" m5 n6 }. U {
* H: e& p9 R, C* _- [ d CleanHideObj.on(0,1);3 G! z, `6 |& a4 x& p
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q"); $ _( o2 k; R) J
# ~, a+ |( k* J3 @/ r' U4 b
} 3 ~5 c. @* h- J1 I6 Z2 B# M/ q
} 6 Z0 f. m7 K4 s
document.addEventListener('keydown', keys, false); , ^( @9 h( j! S D6 {0 O! m
GM_registerMenuCommand ('Clean Hide', |9 C! O |3 l
function(e){
/ V& c$ O: E) p4 ?+ aCleanHideObj.on(0,1)
6 o: p, B0 e5 Talert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");
3 ^- }, D3 ~, a# Z% ~; g. V8 B});
/ t: B3 }/ h& Z |
评分
-
查看全部评分
|