|
|
发表于 2013-4-7 23:47:38
|
显示全部楼层
本帖最后由 chenmeiyuan8 于 2013-4-8 00:01 编辑 _+ T% z) R4 Q* S5 v5 o! v
% y, @# X9 n( N; a; x) a
火狐插件,用猴子9 r- a9 I; Y0 S: l) ^& \! H
6 f0 k) |4 l" wvar debug=false; - i6 `, P& w8 A0 o+ C& {7 E7 d; S
var CleanHideObj=new CleanHideClass();
; A( U7 o4 d# A9 I. ?: A7 M/ V! K! ?+ `" r ^) A
function CleanHideClass()
6 \1 j! ]4 u( x: @7 p{ 9 N8 S) ?$ b1 ]7 C
T/ v. P, s, I; x
this.on=function(id,bMZ)
$ q( Y: N# @; t0 f a C' j {. N) P# Z' M! H) |( z X
& Y) q' J" o! Y if(id == 0)
( x, D6 T5 k, w3 q9 l {
9 ?7 o6 q! ^6 u0 e) @ var page=/* document.getElementById("content").contentDocument */document;
$ r6 i* j% ^3 f9 u1 u. A this.RemoveHide(page,"span");
* Z# ^! a b6 i1 q this.RemoveHide(page,"font");
* e" G" N$ c1 N$ e U- s this.RemoveHide(page,"div");
3 S0 G4 k9 W) V$ o this.RemoveHide(page,"p");& @: ? s0 B( W
' P% l- G) q) B! z8 S4 J }
A/ E% n( h. }2 e; t4 j# h; B0 h" }
! O. G& U5 e" @+ S }9 i" k% V# V' ^4 @, K
this.getobjstyle=function(node,prop)- G5 N% e+ K$ a
{
`: t2 i) }' F% ]" [. z4 X G try: T/ c) V, A2 A( C* k
{* P) M$ C4 E5 F! ?
return node.ownerDocument.defaultView.getComputedStyle(node, "").getPropertyValue(prop);
6 @" A9 u3 t2 F4 n! U( z4 ~: R A }
) W. ^/ J! u2 U0 j" k; x- D0 P catch(e)
" R/ r5 I4 b! g2 j {+ F! B! y/ ~( Z" Q" F+ J: {
if(debug)
6 e9 F; U3 |/ Z3 B. [ {/ i+ y4 y ]* N2 u4 J* z
alert(e.message);
( X/ B% L l: Z }, O I1 Y. r) `5 @# v' E/ l+ n0 a) k
6 p, K2 d$ b7 C& `" V
return "200";8 ^/ K# l9 ]; U; D
}, ]5 W/ U: E7 l
}1 A0 x0 J4 M% B( t, d# D
/ c- P! n3 R* Q! P this.RemoveHide=function(page,objname)
. l' l9 H6 W5 t' W {) ]7 H3 ~8 ^! R
try0 V. z3 d% K3 @. ]
{% e8 n1 x" U5 @+ b- h
var minValue=15;8 x" I1 V2 [- `1 J! s+ h9 Q
var objs=page.getElementsByTagName(objname);
6 B8 `, n2 v" \; E) i/ o1 e2 G& M3 V& \2 o
if(objs.length == 0) P2 \' t* @+ v- F& F5 Q, Z$ |
{
. L5 X! L, W5 k; f6 w2 w6 a4 k/ N3 p, s if(debug)
2 p, V2 r* c6 [: o) F {
; X: o( j& i) v) y7 a, H* E) v! e$ n; { alert("no object found!:"+objname);
' F5 q, j3 d# Y$ k0 R }3 U" }+ c6 e3 E8 Q
}% v& D: p5 R2 p+ l# j' w
else
2 Y7 n: Z5 X& s" J {6 d" _! q' M0 V' C0 D3 \' t$ o1 p
4 N! ^* J C6 F/ y for(var i=objs.length-1;i>=0;i--)
! s& Z" ~9 E3 h; B# e0 i { o5 I2 M5 {( D3 g8 `7 I& H
var node=objs.item(i); 1 w. x! p$ W! N" {
# b7 {7 `5 p# n/ i% _
. G0 U9 D) _, A# ] if(this.getobjstyle(node,"display") == "none" ||" o4 a& ^; V+ ^8 r/ b1 `
this.getobjstyle(node,"visibility") =="hidden" ||" L- D/ p9 R+ n3 B" e* A- e: _
parseInt(this.getobjstyle(node,"font-size")) == 0)
6 C$ h" A5 F+ J* l {
6 c, N5 }2 S" p: D7 [5 ?, N; Q if(debug)
6 s6 ^! l. P/ y- S: W {
8 A8 q! m1 K$ I, u/ q0 }: ]4 z alert("remove invisiable!");4 U+ O* d% H5 x+ u
}
9 U2 Q' e8 B+ J2 J2 Y9 l node.parentNode.removeChild(node);
- n, `2 M- j6 O2 D$ \( v 6 p4 n) l! g2 _
}$ F1 z- D" O# k0 [
else
, G& E! o4 @. T) Z1 F. Q) J9 B {
! s$ B4 D' M" O8 L' Q9 \ if(node.parentNode)
( P7 A( s8 _- h [: O! E {
* g6 p2 |' Y; ]) ]6 j5 b1 | var orgNode=node;) n6 x$ h! W# v" R9 K8 N5 B
var orgColor=this.getobjstyle(orgNode,"color")
9 G0 F4 \1 v' I a. A var orgRGB=getRGB(orgColor); $ c" x) }8 Y: [ u& D: V
9 ^3 F) L" @% M0 B
var parentNode=node.parentNode# c# q# Q0 ?8 Q# d. V k6 S: r
var parentBgColor=this.getobjstyle(parentNode,"background-color");
3 H. V9 g: y4 h& u- m# O- m
0 r& Z, c# u; b$ k Q var isLast=false;5 t1 X2 \8 b9 u& M3 ^8 D7 ^ J
N* O! ]3 Y# ]5 T8 h/ ?9 v while(parentBgColor == "transparent")
7 `0 J+ D7 e% D! @6 k7 l) L6 _, X {
$ W8 K- u# ]! f
; @) Y& n/ c( p' W& h0 M ; n: X8 M7 [8 Y5 f5 g
if(parentNode.parentNode == null)
d0 d- e, b/ ?. M {9 ] B4 i# H" H, {( r/ m ]" b- w
isLast=true;' f8 v$ p) C% ~ _) o- G
break;4 q- F1 M3 G1 a9 i R
}' q- E: S# r' s, i4 ~, T2 G. h
parentNode=parentNode.parentNode;
- O' z2 Q% C; C2 Q) q5 b M parentBgColor=this.getobjstyle(parentNode,"background-color");. o. B' P1 R8 L q- F( G
5 d, ^( N/ y h c% {$ R
if(parentBgColor != "transparent")
9 [6 g/ w% \" A {
5 n/ L" o# D( b+ w break;) V: B9 H- h# r$ k* |) D' P: k
}+ l) p" E5 w- V" i
}
2 l) K: n! i9 B if(isLast)
# {! M9 b, \8 y, u6 ]- f {
5 j/ x* n% h0 E. O3 d if(debug)
# x9 S. L4 F- _7 T( L8 P {
; j9 ~ i( m; N @ alert("last!!");
4 d- L3 b* Z: X; e0 I }
5 o1 a5 T3 M8 P) i. q* T# J% n if((Math.abs(orgRGB[0]-255)<=minValue)&&(Math.abs(orgRGB[1]-255)<=minValue)&&(Math.abs(orgRGB[2]-255)<=minValue))
1 ]0 e' R7 n$ `8 ]# `- t2 _ {
! I8 t" W* ]7 w" G- g orgNode.parentNode.removeChild(orgNode); 4 i: b; Z2 u$ x4 ]3 i6 L9 i
}
& s2 m" J" f3 L( _9 u8 a7 D) U% Y }6 j% u. z7 o \" Q. ~
else0 W/ H1 e# C' C/ o/ \
{
4 O# i0 O: `0 o if(debug)$ |' e$ X/ @/ v/ C
{* C. R. ?, ^6 \8 k' o" Y
alert("compare color and parent bgcolor!");
+ P! v3 C( h( i$ m1 n5 |, N1 W' o }$ R& \6 I. Y4 u" H. G8 _
parentBgRGB=getRGB(parentBgColor);
0 N8 D" a4 g: `: u if((Math.abs(orgRGB[0]-parentBgRGB[0])<=minValue)&&(Math.abs(orgRGB[1]-parentBgRGB[1])<=minValue)&&(Math.abs(orgRGB[2]-parentBgRGB[2])<=minValue))1 ]5 [: l, c0 @% s
{7 m) s3 W7 W6 q. F) U4 |) e% U
orgNode.parentNode.removeChild(orgNode);
3 l1 W* c% V# f: I& N0 b# ^ }
' i7 q3 }* A$ f% a& [1 G) C }% H7 z+ h$ P; w0 d! J( ~4 z
}
: M+ G5 i! y9 H& c+ n } _% I6 |% B% f& x3 S; v
}/ d( Z$ M5 g0 w
}
) V) @- I5 e5 ^+ L$ H: ]4 o& N
9 ^8 i5 {6 ?6 _3 ^ # y: H' P( s8 n6 f9 o3 t( ^
var itemFrames = page.getElementsByTagName("frame");
" E3 @$ g$ T2 Q/ B! ]7 x var itemiFrames = page.getElementsByTagName("iframe");0 b* I) G- w" E
0 b; p' n5 d) J+ V6 o0 p' ` var frame, iframe;
' q# n0 x3 Z: L3 \/ j) l3 | if (itemFrames.length > 0)# q+ k" r3 V$ ~1 Z
{8 e2 m* Y& B( K; [4 ?. F3 g8 D% r8 _
for (var i = 0 ; i< itemFrames.length ; i++)
N) u7 d' h3 H5 V( L {
5 P# u* I8 y/ ~( C Y( H frame = itemFrames.contentDocument;$ ^, [9 N. h1 m
this.RemoveHide(frame,objname); s, y I6 L0 D: K9 Q0 C
}
0 j# ]3 ?% r3 }! s4 h+ g& x$ D0 ? }' P* W8 f" n6 w) B6 C5 x" H, o* m
if (itemiFrames.length > 0)
- o, r+ n _2 j6 E i7 H {
: O3 u0 K# ?5 Q* o! T9 _ for (var i = 0 ; i < itemiFrames.length ; i++)
3 R" u9 U( A: Z+ _& G {
; N$ r. i z: { iframe = itemiFrames.contentDocument;% m2 [3 a" g( n- k- J; Q1 l" Z- b/ g
this.RemoveHide(iframe,objname); " a& I# d$ a$ F0 w' e0 E, D
}9 g( C6 s3 {/ V2 g y( N. X
}- M9 X, @0 Z% J2 ?( d. v- A6 [- M) p
}
. v1 {# x) r. J& D& o5 M+ B+ F8 B: G6 ?6 L catch(e)7 a5 Y9 ]/ Z* U+ p! [5 g0 K) X) ^
{
9 v8 X4 p0 J0 s3 \ _' u1 p# R2 y if(debug)) f. y- O- F& E1 N/ Q* f
{
6 p* w/ M" l& H% ^ v7 E5 h0 ~& R alert(e.message);
' Q5 |' B; }! {& ^4 D% p }
5 g" y1 r; w* l1 e) M }
]' Q" y% k! }- a# _: @" d, B }, B& G5 q) X2 m. G
: h( e4 Y# V$ p
}
; w' U6 F: h* Z% [4 h
2 R7 y3 x f8 C" h T/ qfunction getRGB(colorString)
, d& k2 J7 O' s# N: N+ j- F{
- N; O, a" ^. m4 n$ u7 `5 J var RGB = new Array;
/ m3 v/ {& J4 F; S/ P: n1 T var tempSting=colorString.substring(4,colorString.length-1);
5 ?* c+ f% {5 Z( |/ Z var tempArray=tempSting.split(",");; w8 w2 j- @& x+ V: b5 }6 L
; A7 t2 Z1 ?. B0 [! B& W6 X3 P
RGB[0]=parseInt(tempArray[0]);
7 x5 m0 ~, \" o* m; k- x RGB[1]=parseInt(tempArray[1]);. j7 W. `1 x- Y- J
RGB[2]=parseInt(tempArray[2]);
t7 ]' O, I2 d
$ x+ W1 h' y1 d" W5 `+ @4 _* ]6 z, A return RGB;( t$ v! m! p$ F" ?
}
" o" I: U# E! c& N! v$ w9 Z0 jfunction keys(evt) 2 E0 n; _9 M% s. ^
{ ; A: h; B+ X* N2 S) g& y' c
if(evt.ctrlKey && evt.keyCode=="81")
9 B$ x/ [9 {; C, Q" G( i( v3 R4 \ {
4 p1 r; Q0 j u6 W CleanHideObj.on(0,1);
' n5 k! t, v5 v( g/ e* L alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");
/ X+ q& z7 E' J7 x) u
5 |% t& }) r, }/ c4 }0 |/ R8 J } ) a* c2 Z6 W- L2 ~4 d0 `
} 2 I. x. S- B1 J( G) O& ^9 R) z
document.addEventListener('keydown', keys, false);
5 k8 O# [$ Y% x/ C) CGM_registerMenuCommand ('Clean Hide',3 [& @8 G, \$ U% p1 S3 Z* A+ o
function(e){
: y; o4 m' w6 ~$ G9 L* ~0 e, XCleanHideObj.on(0,1); L$ H5 M: N& `4 M5 m" P, ` o% K
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");
& a0 ~+ j3 e& e( t; D});
$ r+ n. F! N+ T* r! @* L( } |
评分
-
查看全部评分
|