|
|
发表于 2013-4-7 23:47:38
|
显示全部楼层
本帖最后由 chenmeiyuan8 于 2013-4-8 00:01 编辑 - L4 {6 I6 l* U- Q
" @8 _7 C& `$ `8 [4 A) p% f火狐插件,用猴子
. T: d- v8 v0 D, |* v( j7 R
3 h! K9 ~8 L) o6 A. R2 Yvar debug=false; 1 u. n) n8 I9 D" g) j
var CleanHideObj=new CleanHideClass();
| o9 O5 c3 ]! u1 D9 `% Z [: [
# i; z! @2 v: x( i9 i7 |% n( C0 z& ^function CleanHideClass()
$ j- {) o9 Y. C# H; {5 t+ n# B7 V{ : H- i" a9 Y/ E
- N8 k: L' | e this.on=function(id,bMZ). J$ c9 }, R4 L5 k
{3 i: k7 ?$ u I" e! Q. |! ~8 y
2 d& X( N0 m6 K* | if(id == 0)
/ j" s% y+ |/ e1 [ `, c: r( I: b {4 W2 H6 e c; i8 k$ }# e
var page=/* document.getElementById("content").contentDocument */document;
1 g1 H( E, j) d8 V' p this.RemoveHide(page,"span");, M4 ^/ b* s+ b# Z9 f6 ]0 Q
this.RemoveHide(page,"font");
, L! N& w2 E0 E8 L, X% H* v this.RemoveHide(page,"div");
1 L* k6 _7 O) X! j' u8 ] this.RemoveHide(page,"p");' L6 p. ~ r9 z+ `! R! x; U
- u! [; t; z' N. f* s9 H. Y }4 O I6 P' l4 a7 h% ]/ p4 ^& q
/ d8 \+ P5 P! ~9 ]/ R
}' g! R! F; f) M, R& V3 z3 X& n
this.getobjstyle=function(node,prop)% F# T5 b# v1 U5 H
{- ^3 v/ }. W5 \7 |
try8 N7 ?$ T/ y2 K5 P. d# i
{% P: p- A0 x0 r8 C1 z
return node.ownerDocument.defaultView.getComputedStyle(node, "").getPropertyValue(prop);. A& ?- k$ Z- I9 ?3 n" C8 |* A6 P- M' i+ d
}
# S9 |4 {) N* T/ x& q2 N3 _ catch(e)! @1 T, S2 O0 A2 J, o
{
2 M* r$ @) P- X6 n0 G* Q" } if(debug)
! F1 e7 h# m z1 g5 f {
5 n" j, p8 w% C alert(e.message);/ z. _, V4 C; Y
}$ n! Y% Y3 p r7 w. u& ], |
8 i3 d9 X% ?1 V3 n& p, ?
return "200";& p- [+ l0 A) K0 L# [8 d( W
}3 X9 x' [" |, a I" \
}
0 i0 Q8 s: Q/ o0 }) t5 J1 j
4 ~5 t: y% o% ?8 Y t5 u this.RemoveHide=function(page,objname)
. }: f2 j! F8 l: H7 N( }6 ?1 D {
, R3 r( k) D+ R# H V W6 x try
; d* ?: [' P, f6 h8 B {: z/ t" U" L9 f2 W3 U3 f0 J" B
var minValue=15;
$ k0 N5 U; H4 C1 U$ A3 u# m var objs=page.getElementsByTagName(objname); * g# K! P' _0 G* E7 X- O% Y( N
0 @& R1 S6 @7 `, o
if(objs.length == 0)
! X/ E: I+ @- ^ {
$ P1 z" K2 c3 d$ h: ^) R* t if(debug); b# T, [; A% }3 I3 r
{
/ A |4 ~1 Z. _0 \% l# X5 j8 b alert("no object found!:"+objname);& D- o+ D+ r8 _& P6 M
}
* R5 F) E- k7 c% @+ h1 L/ Z$ E }" d# M; B$ d- f( O
else4 ~' ~7 K0 S! a ]/ e
{
3 m. d7 P8 N6 u; ?9 v A
- U( f l, t4 |9 B- @ for(var i=objs.length-1;i>=0;i--) 7 I' k$ U }+ o" Q, O! z' I" v
{
. K8 }8 y$ x/ b. V% u, ? W var node=objs.item(i);
D0 @; a( s2 b3 X# d# ?( ]
# E R' c& |! J1 A7 @; l
4 N& }5 h; `9 A1 j5 V if(this.getobjstyle(node,"display") == "none" ||7 R4 ^8 M' H7 ^6 U: d! Y4 ?1 L
this.getobjstyle(node,"visibility") =="hidden" ||+ j1 A. Y* p8 j& z
parseInt(this.getobjstyle(node,"font-size")) == 0) 9 g! g2 f" ]- R8 e. z/ h" j8 I. H/ A
{
& E0 G3 O, F; ]+ X: E5 k if(debug)
: a) I# }- J& X/ y# U7 v {
# S, @. D0 I! n8 w: m% B alert("remove invisiable!");* k* S* [( t) R' D3 z5 \5 d! a
}
3 p' F& @9 L6 V node.parentNode.removeChild(node);" O+ t( D b2 @1 z
8 w/ _8 |* E8 }% b5 h7 J2 C0 b }
& H5 q/ h: T" t5 c8 s! V else
8 g5 `, H5 k- k4 r* d {" h" G5 v5 p( ]+ Y
if(node.parentNode)
+ w# F# }1 M8 G$ C" @8 C {& n7 \4 f9 |) c3 H6 l' n
var orgNode=node;
4 K# ?7 p( Z; H! j# R) | var orgColor=this.getobjstyle(orgNode,"color")
9 s$ S0 g6 k& U' b4 I4 F* n var orgRGB=getRGB(orgColor);
/ s' _; j8 v. i- Y" d
& r: {& \8 R& r$ G6 [& g! ], o; p var parentNode=node.parentNode) R- ^$ T: f5 ^% [9 }
var parentBgColor=this.getobjstyle(parentNode,"background-color");6 Y+ A2 E7 g- M6 y( z) b8 S6 J
) Z! Z0 r& U- d1 G/ y var isLast=false;% K: d G( v8 ~5 o
; S0 N% Q; M( G6 E0 Y
while(parentBgColor == "transparent") ' P: R1 {5 e$ U) c- i
{
6 t$ ?3 I2 w: ~/ X' p: @2 { ) a+ n& J# Y& M& S# t- r$ B( |8 O
* P! q0 L0 L, A
if(parentNode.parentNode == null)
+ i5 p& C4 B" Q3 [8 H {
- @- k5 E9 T: e+ \6 } isLast=true;
, e* r) I8 V- K" } break;- D: {& @4 }0 T, J2 O
}
z* l, @! R# ~" l$ M# y: t8 j* [ parentNode=parentNode.parentNode;
/ D5 h7 I* Q2 S# o7 d parentBgColor=this.getobjstyle(parentNode,"background-color");
* g/ |4 @ N( F8 Q* Z& A
6 \: }4 `6 R& M6 q2 x m7 ~ if(parentBgColor != "transparent")
5 m- }1 q2 y9 l* b! u% ]6 A" R1 } {
. {5 U U8 s! @4 z6 E5 P7 j8 n+ D break;: e. x' h! o+ p7 E
}! ^ L& H8 Y0 n+ Z0 C( y
}
% A) ~8 d5 g3 M1 E9 i U. E if(isLast) 0 M9 D* w% J0 A2 k5 g5 T& e
{
$ @, k$ e: P$ H$ ^) [' R) h" U5 N# g if(debug)/ B% |* B8 t8 y% s
{3 M8 F. @& Z, Z7 U" b! F8 y' K
alert("last!!");
1 I9 M) Y+ a8 h8 Y }4 M8 J, j2 A4 C, m# j; Z' J) \' n
if((Math.abs(orgRGB[0]-255)<=minValue)&&(Math.abs(orgRGB[1]-255)<=minValue)&&(Math.abs(orgRGB[2]-255)<=minValue))
3 L0 e4 o6 R/ Y% J {
2 ~9 G" L" H- b3 O9 M orgNode.parentNode.removeChild(orgNode);
' S K8 V/ N# N4 @2 @2 R }
4 G* [+ v2 g3 b5 h: G* z: I }9 @/ h, w7 H! }% Q5 j
else
, C _% o7 C3 f$ N6 t( u0 ^ {# N* Y3 m' C4 y6 u5 _# V( T
if(debug)
" h3 o$ [2 B0 a4 O* Q {4 K9 B" i9 r; x4 c; L8 l3 E9 E
alert("compare color and parent bgcolor!");
# {# R6 J+ C* I; O8 Y' q& o# n }' A1 d* ~1 w' ]2 z
parentBgRGB=getRGB(parentBgColor);
' b# C1 H- a! d+ E9 z6 m if((Math.abs(orgRGB[0]-parentBgRGB[0])<=minValue)&&(Math.abs(orgRGB[1]-parentBgRGB[1])<=minValue)&&(Math.abs(orgRGB[2]-parentBgRGB[2])<=minValue))
1 \) D8 q) M- X$ w: a# @# Z {" v( m* O7 D% Z. v3 Y1 j0 H( @
orgNode.parentNode.removeChild(orgNode);
* i7 E7 d1 x9 s* X% Y0 x: n }! u3 H4 f3 Q g6 b9 |
}
* L3 b( G- K& e5 L6 A! b6 A }4 C$ ^9 M5 }$ v) H" o% C
}) X' e8 A- i0 S) i
}* ]! O* Y2 H$ f9 `
}
+ t Q" N. N! X& X" Q W3 h( A
* p- T# Q1 `( \ % z; H+ B2 u' p0 s( m. k
var itemFrames = page.getElementsByTagName("frame");
9 X% A5 D2 I* h! t W3 v var itemiFrames = page.getElementsByTagName("iframe");+ k: {, }# t3 M8 A5 q$ u( l O( n
1 h3 \, X' ?% r) L9 b4 N( r
var frame, iframe;
7 L W. K- x3 n5 A* Y. Y# A6 e% m if (itemFrames.length > 0)
0 l! R- x5 w8 u# A5 \ {5 v* I3 |9 w& o1 C" {
for (var i = 0 ; i< itemFrames.length ; i++) * M' l5 `$ }! b* Y6 f% w& y+ r# Q
{+ y1 H" k& }$ \/ y
frame = itemFrames.contentDocument;
7 T4 A) r- H7 `2 a, y# ~. x$ [+ s/ C this.RemoveHide(frame,objname); ' B) b" y+ h! l( a5 q
}+ @: Z! I! s/ q
}
) _ ^, X6 T) d C- t$ s if (itemiFrames.length > 0)4 q5 l0 v/ @4 @/ j$ z' R3 F
{
( S- G0 n& g* N. B for (var i = 0 ; i < itemiFrames.length ; i++)
# h ~& x# ~$ m$ F, a: o {
# T* B; x U: l- p, H) `+ O+ ~ iframe = itemiFrames.contentDocument;
% |$ ^. {1 g% p- Z+ K& X1 r this.RemoveHide(iframe,objname);
0 K0 k( n4 d, l1 \8 R }* {0 q; t1 t: H; i
}
3 M. `3 N- ]: j+ a: u$ {- Q }, d2 J) u9 h1 G& Z+ h1 S- f6 |3 I
catch(e)! J! b' i: r4 m7 s
{/ @7 J6 Q |4 H& k
if(debug)0 b8 H6 R$ }- y+ L/ O. I
{
G7 P( t s& K alert(e.message);
) c% J# x! \4 J! ~+ D, }) f6 P }4 [. q' u% ?4 `3 @
}
4 m0 x6 a/ N z! S' S }
* a, V. U$ J# y
% W# X$ ^! c+ G6 i+ W9 M}
3 `! H& L! R1 i3 s+ [7 i1 \8 p- Z [6 }
function getRGB(colorString)
- F {1 M8 k6 |% i{
, X, _: l$ b' Q/ a- W% U& T3 t* [- U% C var RGB = new Array;
; F0 F& `$ y* g1 p0 `8 X var tempSting=colorString.substring(4,colorString.length-1);3 C- X9 A. Q6 B) Y, P9 y
var tempArray=tempSting.split(",");8 H' \6 n- T% z% U6 V" H
6 m# j+ }2 |1 f; D4 c6 H" c1 I- S RGB[0]=parseInt(tempArray[0]);
" a* ?; E; X7 E4 ? RGB[1]=parseInt(tempArray[1]);
n' p; A: r! Y) ?0 N( g RGB[2]=parseInt(tempArray[2]);
: L; N# Q0 [/ H: o
. B% f5 ?$ G" l' q8 Y return RGB; f, |- O' f! \/ o4 t, e. }. k
}
- ~3 M5 Z+ J) w {4 l afunction keys(evt)
\0 Z+ V0 p8 ?: c2 N7 O& | { * i4 t, P9 s( [/ z/ A4 n
if(evt.ctrlKey && evt.keyCode=="81") ( Z+ ^, A% X6 L, z' j
{ 5 C- G) {' ?7 t
CleanHideObj.on(0,1); K1 B) M$ t+ Y$ I4 D+ Z6 v% H
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");
: N3 q& X. o- l3 h: i5 B) f( ~ . G, W% M. X p7 b
}
/ i5 o! P+ i e) N( ] } ( B# w |, {& m+ p' k, X
document.addEventListener('keydown', keys, false);
$ [1 c8 i8 Y* N8 t) z- }0 r% [5 EGM_registerMenuCommand ('Clean Hide',
/ S) u- s& I/ d/ c7 {function(e){( Y ^8 P: _4 E( Y/ L6 a' n% D9 _
CleanHideObj.on(0,1)* p+ z' J. Y/ I/ J! _% |
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");9 o. p" P% ]0 u/ N; c
});
: i7 v- s( O6 f# J+ S9 U3 T |
评分
-
查看全部评分
|