|
|
发表于 2013-4-7 23:47:38
|
显示全部楼层
本帖最后由 chenmeiyuan8 于 2013-4-8 00:01 编辑 5 @& O7 U6 U5 k" y+ |+ m1 T
% ?$ J5 E; Z9 n9 j
火狐插件,用猴子
# r/ p; X4 [# ]2 c
( v1 j+ w' v2 m1 N7 s6 wvar debug=false; & R' x6 D4 j. w" v @
var CleanHideObj=new CleanHideClass();# }& [3 U' a2 D7 I$ \3 i
3 |. `* j9 O0 x# W1 F: t+ B
function CleanHideClass()
6 q7 ^, [% B/ _ U! _5 N{ 6 ?: C- L# O( e
1 l; f9 b/ y1 f/ A- S6 p* t1 B, W this.on=function(id,bMZ), [ W0 S" R2 \: P
{& b9 M8 h2 J7 e( Q! ?
: A w3 [/ b0 k; `9 D# [ \ if(id == 0)* m* @8 j! J/ K' N$ j, Z* [
{" Y' G% y4 e: F
var page=/* document.getElementById("content").contentDocument */document;
; \8 g" ~4 K8 [% d this.RemoveHide(page,"span");
" C) h4 I$ Z$ i f; K1 | this.RemoveHide(page,"font");
* W0 z& g: v$ J7 ]( x this.RemoveHide(page,"div");
' x0 h" C+ u0 d: O this.RemoveHide(page,"p");
2 O; z) U- f& F% t2 I 7 s' K# Y+ x9 z% ]5 |) ~
}6 s6 R6 o0 X7 Z; a9 ?' Y% |# s* S
/ ^' G9 G3 ` }' b
}
4 a3 Z a" I; j- }. ? this.getobjstyle=function(node,prop)$ M& e6 D* e5 z8 G$ x; P
{. v& h, i+ }1 f" O o
try0 D% }2 C5 T0 _$ ]$ j4 m }+ t
{2 Q. p, i: X) k- Z+ O2 r F
return node.ownerDocument.defaultView.getComputedStyle(node, "").getPropertyValue(prop);; {2 |$ R/ E/ P( q
}
9 w. i" ~/ o+ {7 R' ^3 ], N7 q catch(e)0 N( T, ?$ v: W, J9 m$ |1 a
{# D O- K' B5 X* V1 i* I! C
if(debug)
8 D$ E' \. n5 i3 M {
) @0 M* I4 Y, p, p alert(e.message);( u0 c) B2 {& X7 [
}0 |6 M- H7 _! m* X- H1 h
1 C' f. ~0 e* t
return "200";
4 B- F. f8 i" P5 b+ a( l- ~ }
$ Z% v7 T$ u, K- g9 B( k6 L0 r, d }6 {7 f8 d/ D+ C; J- K! Y
& [$ n8 R8 t8 W8 V8 k
this.RemoveHide=function(page,objname)
/ u7 y9 p4 v+ [- N9 y# V {/ K$ `* z8 i6 i- H! o
try% I; l& ?3 I$ q0 [& {' {( j
{2 t+ X- ~* }% A1 h, [/ F! V6 |
var minValue=15;$ f+ L5 e/ A4 E9 {/ U
var objs=page.getElementsByTagName(objname);
6 l2 b. ?8 J: @4 e( F0 M, ?5 ]9 V* d# s# @& N; D0 v+ ]3 F6 ^
if(objs.length == 0)
2 `9 T* Y6 ^5 q" A, A5 s { \3 T# X1 ~1 N
if(debug)/ W' `8 X+ J; K, h
{
; M. D4 u R1 n# ?% r9 D alert("no object found!:"+objname);
7 ~/ i, {2 y# c1 E( R }
: ^; ~# U2 S! a }' N1 b! A% B; A/ h1 c( v1 t, j. l
else
2 q7 n0 |3 v/ M" Q, ^+ C/ r0 M) V8 V {
) l) r% U/ b+ k4 D1 K( J / x# C x( r$ J% q
for(var i=objs.length-1;i>=0;i--)
2 y' Z- e/ y, x {1 Y0 m0 S! i3 |7 S( M6 m: r1 j! F
var node=objs.item(i);
3 U1 T! @) k I8 S! k* K( D
% Y, p1 |9 b' A% e2 l& P3 g & m: r& a% G# k4 |% Q! x
if(this.getobjstyle(node,"display") == "none" ||, I# c0 v% @3 y+ V
this.getobjstyle(node,"visibility") =="hidden" ||' p0 _- ^0 A5 p4 }. i, J$ S
parseInt(this.getobjstyle(node,"font-size")) == 0)
1 n- d) t1 t7 ]5 P+ ?0 r0 h: S {1 Y5 a5 A9 ^/ d# r* h
if(debug)" o x8 T1 j. a# d
{
: B1 a1 e0 `0 \6 k alert("remove invisiable!");7 A: K K% ?3 c% s4 q8 ?( s
}1 D" t" L/ {6 ^6 ~: y
node.parentNode.removeChild(node);5 N3 n1 D* K; g" }4 B5 ^$ H
; ?0 R7 V N9 f# q) _4 n }- Y* O8 j+ b" [ x0 A7 Z; {
else ) r0 }3 l* A, t5 i3 z
{
3 @" [# Y0 p: m if(node.parentNode) , I) \# W; p4 {, }* J1 b
{
( M. l" w+ a- Q1 d- j var orgNode=node;
* q, B0 z5 r: v" z' f* O var orgColor=this.getobjstyle(orgNode,"color")
+ r$ a5 S6 {3 h1 q var orgRGB=getRGB(orgColor); 4 J$ X _$ o ?
. s) Q @2 U) k1 C var parentNode=node.parentNode$ I9 i0 Z0 f0 q" ~
var parentBgColor=this.getobjstyle(parentNode,"background-color");
4 R" R. }1 z) h0 }, x. D1 k" T v ( Z8 q. s4 i9 L
var isLast=false;
" f( |+ K, }& n& ^. B7 t# [% Z
6 Z; B/ j4 F7 n' `) r) w" j while(parentBgColor == "transparent")
/ |, E* R/ X* J' ^1 N* u {5 m1 a! d# M. R7 o/ h; ]- C3 R
) A, Y4 Z, {+ m7 n @; F- a% O& Y% B
* _+ n1 x% ~. Y7 g' I, a8 X if(parentNode.parentNode == null)4 i7 N5 i# M2 q* j1 I
{/ m Y8 Z/ q: ~6 e: h! r, n
isLast=true;
9 `. { D x% G6 u break;/ i3 q, J1 m6 Q' S
}- Z' O" x% e! Y! X2 b" q4 C/ y
parentNode=parentNode.parentNode;
" u2 O( V2 d- n, c: Q1 o7 I" O8 g parentBgColor=this.getobjstyle(parentNode,"background-color");
6 K- i' e* T0 w! j$ j5 S8 \5 m
, k" n2 b# v! ] if(parentBgColor != "transparent") ( R6 r0 F' B: G$ e
{, I# j6 @7 a6 q% \8 z8 v- C
break;* O5 B- N7 d! W4 w7 Y4 {4 f! W; I
}
( M0 W5 M8 w, q7 E }
3 ^/ |2 f* i" P" s" H7 | if(isLast)
3 k0 Z2 h: _ Z7 H% l, A5 `; Y {
% d) c; v1 p9 K if(debug) i6 |3 c$ C" O, D: u: m
{
1 ~' s+ X6 K& l7 Y alert("last!!");" G# M7 N# v! z4 m2 w
}! Y$ u- j9 r( ^$ |
if((Math.abs(orgRGB[0]-255)<=minValue)&&(Math.abs(orgRGB[1]-255)<=minValue)&&(Math.abs(orgRGB[2]-255)<=minValue))2 V$ u! Q6 B6 t* k9 ]6 |
{' ^! k7 Z* G" a7 s! y; S$ c
orgNode.parentNode.removeChild(orgNode);
. Y2 u0 M0 r' d- X) t- [: V }* ^8 V$ g K( F0 e/ g, P$ E4 ?/ D
}1 O9 j+ D$ b" D) I8 A
else
; {3 A" N! q I# w5 P {! ?; h. g: e. E% q6 n& @) L; f
if(debug)
( ], |$ q9 T: c& R) C+ o; V% \" u {) K; B8 [0 N/ {9 Z- o) ?
alert("compare color and parent bgcolor!");( L+ U7 b+ h( U5 Z
}
1 E2 N5 y5 E* b( k/ {7 m parentBgRGB=getRGB(parentBgColor);
- U/ z& i9 J; ]- d if((Math.abs(orgRGB[0]-parentBgRGB[0])<=minValue)&&(Math.abs(orgRGB[1]-parentBgRGB[1])<=minValue)&&(Math.abs(orgRGB[2]-parentBgRGB[2])<=minValue))
9 J( _# @, ] G: j {
1 `4 L. h/ F( Z8 z orgNode.parentNode.removeChild(orgNode);
- y4 s6 X, D7 b- M }1 u5 n3 m- B! i+ g: e" c+ N) ^
}& x) j- T, b0 U F% F4 _0 g
}' a, X$ f! K* A d) u$ w
}
& G* {6 a! d0 n+ e }2 v$ I8 U1 \3 l U9 N8 J
}
1 s8 m e3 ]# n, n' U9 Q) _
4 |7 z" F3 e- q2 U* \4 s
. M4 g4 `0 T7 m+ D6 ~$ ~' P$ l var itemFrames = page.getElementsByTagName("frame");
8 v4 t6 J8 ]! Z* u# s7 M var itemiFrames = page.getElementsByTagName("iframe");" M/ f! ~% L$ g+ R2 C; s
# D5 a$ M% s: E2 I6 }2 ]
var frame, iframe;
! B( x" H1 A& ]8 \3 a' D0 \- m if (itemFrames.length > 0)
( w5 B6 E) E5 H& R1 e" m {
- Z/ K; [+ a1 E! q; l7 _" C. J: L# ` for (var i = 0 ; i< itemFrames.length ; i++) % G8 U$ q1 C5 a
{6 t+ M! j" [- w; N
frame = itemFrames.contentDocument;
8 K- B( Z/ ^% k" M p- D this.RemoveHide(frame,objname); % B- M2 J. d/ R5 ^/ q8 j. X
}
9 u( x# |3 ?( [! ^3 |) V+ u }( h3 D1 |( m. W' C$ b: ?3 ]/ x' U
if (itemiFrames.length > 0)
% }+ T' ?( C' G1 |4 r; F$ c7 z {3 Z6 @$ \: @/ h
for (var i = 0 ; i < itemiFrames.length ; i++) 5 I4 M j% m; X, K
{
* e$ ]9 M! c: d5 i1 g iframe = itemiFrames.contentDocument;- k: _3 x3 H2 k. K6 J8 l
this.RemoveHide(iframe,objname);
2 F! B, T8 c% M1 u% A }
0 ?# @: s1 |4 |# X4 @7 \ }- Y6 e- [2 N3 I+ Z, h' H
}
$ k$ N& x/ s# D9 X catch(e)# S! T9 {1 ~; j7 g Y1 X) U
{$ h. t5 o! Y% E
if(debug)$ g* f9 p4 e" }! W. f# X& }
{
x+ w2 F. @ ]1 o alert(e.message);5 m6 ?" j r6 C- K
}' Q+ \9 y# V& n" A4 X
}
2 Z1 F9 n5 N" C' U& l% D' @ }
/ }; X! {6 R$ b l1 @( I * ^3 s5 C! \+ N h6 ]5 j" ]
}9 b0 `) q) y2 ~
) b: q3 M6 [+ D8 |
function getRGB(colorString): b4 n% Q: j! L; Z0 R" b# l
{
; L4 b% a) ^ U# f3 n6 S& R var RGB = new Array;7 C9 r, {; u1 q- k) S P/ z. Q- h; c
var tempSting=colorString.substring(4,colorString.length-1);
3 h1 ^+ F" [# H/ b9 A var tempArray=tempSting.split(",");! G7 A! ~ x' z
3 {; F9 f8 C6 u6 h7 \! {9 ^ RGB[0]=parseInt(tempArray[0]);+ A0 f8 s, B- U. @
RGB[1]=parseInt(tempArray[1]);
7 R% u/ d1 `$ T: l5 U" A RGB[2]=parseInt(tempArray[2]);3 g, w( ]; G/ m
' Q+ \# W: k% `8 C return RGB;9 z5 o3 U% ?' H: f. v; q
}- f; Z1 |" _- g( D! ?
function keys(evt)
( {+ u# \/ F& b- Y& G5 A" X { $ p" H* o; M5 v2 Q& K/ T8 Q7 J
if(evt.ctrlKey && evt.keyCode=="81") 3 Z/ k. h- \7 d6 ^2 x4 A& h% J+ _
{
: \5 B1 w" x N. @7 Z. S% R* y CleanHideObj.on(0,1);9 F5 y. k! X7 z
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");
, O- w3 s7 W& ]" g1 p
, C7 F0 x( m- N& w6 g }
) \! k P* P; n* n& D3 E5 d } 4 x* _$ f' a+ ~! z, U
document.addEventListener('keydown', keys, false);
# l+ s/ W: R( _ I7 IGM_registerMenuCommand ('Clean Hide',4 x( W' r' L; e/ d
function(e){
3 P- i) d4 R" @% ?7 u7 jCleanHideObj.on(0,1)' @% S+ b0 M, ?( ~
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");" z/ r! h* x3 {% T+ Q; x
});
. G2 F" e+ r0 o/ Z9 |5 r' x; L |
评分
-
查看全部评分
|