|
|
发表于 2013-4-7 23:47:38
|
显示全部楼层
本帖最后由 chenmeiyuan8 于 2013-4-8 00:01 编辑 " ~+ ?3 u% v0 R2 q7 c
) @" N q8 k! G8 Z3 T6 @/ j' a3 B火狐插件,用猴子
7 r/ R4 m( b F! S& O( s ]. H* n; F Q
var debug=false; / c; b0 X8 p) R) b# |
var CleanHideObj=new CleanHideClass();8 ]% R% b7 s* T; _
3 U' _9 J; u" \8 j, r! Sfunction CleanHideClass() ' a! F: I; N. v4 L5 h7 N2 v
{
% H& d) g$ c' z# w3 d4 @* e2 o3 G * x; D0 ~% x( B: n8 Z3 d9 ?5 G, _
this.on=function(id,bMZ)" D4 z5 x/ F( i/ J0 L4 p. t& _
{
( B5 H/ \6 w9 d7 w' c& E ~) q2 K; B3 y& O
if(id == 0)
3 b0 i/ B% B$ X- Z {
( | A2 o6 k6 R/ W4 q w var page=/* document.getElementById("content").contentDocument */document; ~* D- A4 T6 @" L8 O8 {) T
this.RemoveHide(page,"span");) Q+ k2 x/ p8 k% v) x" o# P9 e
this.RemoveHide(page,"font");
8 Q E' F5 v8 u this.RemoveHide(page,"div");
# [9 W$ P" G/ I, S' H% h& P" u this.RemoveHide(page,"p");" }- U, G, A( e0 Z
. ^( T% J M- W3 g9 }$ e
}$ p7 v" ?. |* i6 m, X
8 M- T7 P% p: S, h+ Y! H2 Y }
/ c/ U- G# c7 u/ S7 m& l this.getobjstyle=function(node,prop)
' g8 |6 J& @- N4 A! P/ ^: m* D {- K, | P( i; Y% v9 S$ ~* Z" f
try
- Y1 z# y, M* m! J {
' ~! \) G, s; [) \4 M' V return node.ownerDocument.defaultView.getComputedStyle(node, "").getPropertyValue(prop);
# q0 h- E0 H) }- w }) E' P* E% P5 q9 b; `( t* c! Q
catch(e). D6 N5 l4 C) e( M
{
' z$ y' U& _. P5 k1 s: R' k: @% v if(debug)
) O3 h) H5 u; d7 N, v {
( t2 g- L/ ?$ e# b alert(e.message);: C, h. i+ J2 h+ y' H6 E7 ~
}, L+ l7 c; V7 ?' z, K6 t
y5 q0 m3 ?6 n return "200"; q. B( S' b* H. v* v3 g
}; K+ n1 n; Y# K: N8 S( o# A+ f7 a
}' Z8 v- W% @& _7 x+ Q: f
5 s2 b8 F# @7 ~" Q
this.RemoveHide=function(page,objname)/ L# D9 B5 D; U) m/ v
{
2 I: S; x: x4 m$ \, I! e try$ \1 s" n/ X1 T( x, A4 [
{
! F, A# [6 A/ S& x% X; m: Y var minValue=15;
$ M) @7 E: G* @; {! m/ M2 W var objs=page.getElementsByTagName(objname);
! P O) b. g- N c$ p* d
: r$ l" G5 K( f5 V if(objs.length == 0)
' G/ L7 i" m; ^9 G3 w7 [: r {5 v1 n. q7 _ s: U# @" f
if(debug)
! t1 R. o J6 b7 a# B) E9 @( R {
2 ~/ B4 I2 V: W, f alert("no object found!:"+objname);
- K) c. G/ Z a; y }7 x) Z: \. J; N- P& j# \0 J/ B e% w( C
}2 n/ I8 b4 h% ?- f& W) T6 f
else& k- l* C4 [0 Y2 ]6 Y
{) g1 g" Z% o+ x+ u
0 v; y2 F$ ?& x+ ]' ]7 T3 z, T for(var i=objs.length-1;i>=0;i--)
, w: z9 D9 Z# y5 A& z {
% Q" p/ F; Q5 j var node=objs.item(i); + x/ _+ K: u8 y) l1 [
& A$ r) x ?% Q [8 l1 G
: H5 Q. ]4 _4 t' X- k& {1 o if(this.getobjstyle(node,"display") == "none" ||/ d. J" M5 I2 E4 F% I4 b5 G" F
this.getobjstyle(node,"visibility") =="hidden" ||' |, F8 S. J( Q6 i# S& h% X' K& _+ c. m
parseInt(this.getobjstyle(node,"font-size")) == 0) # a# p: G3 q* Y
{
$ g; d7 Q8 C5 t1 m4 H3 y if(debug), E- O. y6 p8 \" @* R
{
0 f' W3 f, t/ _2 {$ K/ x alert("remove invisiable!");
6 {" x$ V! E$ l- Z1 \ }3 A5 p" R0 C J, j2 n3 [
node.parentNode.removeChild(node);
0 R! J0 Q- u6 u, l 4 l/ J) ]$ s( c8 M/ J
}
1 F. w* s+ r" x/ S8 X- H, E else b- ?% {( L0 ]/ t) e
{% P( X; h) V7 D9 x
if(node.parentNode)
6 F5 L1 W$ x; }8 ~ {/ Z6 Z- G1 Z6 S h
var orgNode=node;
' K+ b2 p) L! T: ] var orgColor=this.getobjstyle(orgNode,"color")* z+ h$ i7 k7 t- O" W! L$ u$ Z/ g7 \
var orgRGB=getRGB(orgColor); ) D, b }( L, w) S* \- z
( o& _6 ^4 c& Y/ w
var parentNode=node.parentNode
! l w8 V) r! x7 Y& K% _" N1 w$ ` var parentBgColor=this.getobjstyle(parentNode,"background-color");$ [5 E/ M5 ~" I9 q5 T
# M f& a7 U7 n, T1 \# S var isLast=false;
0 P0 l' v2 O$ d% e5 |+ D
9 }/ J" E" I/ I# e while(parentBgColor == "transparent") 9 h7 w9 B* a' ^+ h, N+ H* r
{
! x& U. z3 s* ?8 K, F
: M8 x I% K$ `1 b0 w
( z8 ]. g& ~4 j1 @ if(parentNode.parentNode == null)
* I" W, G2 p+ a) `( A* c6 n: s {
4 M( ~$ X) E" R5 |" P l3 r! P3 z isLast=true;3 i4 h: i. Q2 g L/ }7 v% E
break;9 N ^ r h7 { j! s: ^ ]; P' a/ R
}
/ O% Y) t0 _, n# d' L) U parentNode=parentNode.parentNode;
# _! O3 i2 H6 x; U" l- [2 t3 d parentBgColor=this.getobjstyle(parentNode,"background-color");
# a8 p5 J% ]! ]5 H) [& h/ k" R0 z8 x7 a: P
if(parentBgColor != "transparent")
* y9 O( `" G$ `* r: { {8 M1 K7 M& S5 M1 _; g2 E
break;
; F9 c# s$ S, X0 Y+ K& L }
# r8 H8 N* v* h! S }5 c/ G$ y% Z+ T
if(isLast) ' L: w3 Z& R Y6 o
{3 a: u4 m4 u) v' C$ r6 S
if(debug)
; I0 S) f" @8 x, {5 G/ x7 k {
6 x0 q5 S7 H! K8 E7 w% S" R alert("last!!");
) \; r; I- ^ p- P" T3 j6 x }
) U% r# Q- t" L }/ R# y/ ~, p R8 U if((Math.abs(orgRGB[0]-255)<=minValue)&&(Math.abs(orgRGB[1]-255)<=minValue)&&(Math.abs(orgRGB[2]-255)<=minValue))/ H [; }* O! ~$ V
{3 e* ?* M% ~( t
orgNode.parentNode.removeChild(orgNode);
% K5 V& J& r) R }
# J8 d1 L' I4 O4 f0 h1 N }
! } o9 V0 w1 K: V# E# O" f else
* g& w; ]! N0 n {' {1 C0 s) k, _) Q$ w
if(debug)9 I& ?# i2 l; L* {; {
{
S4 O- w7 ~6 N+ ? alert("compare color and parent bgcolor!");
5 G F- F0 Q# d& ?- | }3 U6 J- Y7 a; v8 v/ H
parentBgRGB=getRGB(parentBgColor);
# c: @& v2 _/ w% J" u2 y if((Math.abs(orgRGB[0]-parentBgRGB[0])<=minValue)&&(Math.abs(orgRGB[1]-parentBgRGB[1])<=minValue)&&(Math.abs(orgRGB[2]-parentBgRGB[2])<=minValue))4 M* ^! w* b9 X8 ]# Q0 T( R2 [
{
9 _8 o& x5 Y) T A5 E orgNode.parentNode.removeChild(orgNode); + k" \! o& i1 p& B" K# i# U
}
$ S6 x! |; K+ t1 r$ Y- j }- @" [( G" h5 _3 G/ r! a; p
}3 r, l2 C; I1 r3 r
}
! n( n* k: W$ W9 A2 l7 B% d }
) L/ x/ j3 @+ d- { }
+ Q) ?2 k% t9 c
( R4 ^, X3 @$ e" R5 ]. ]
; | i+ S3 e& u7 b var itemFrames = page.getElementsByTagName("frame");( L8 C9 |* _. E) z C, L
var itemiFrames = page.getElementsByTagName("iframe");' x# t2 Y( a. j
4 [$ b! A) z0 F" a! q5 W var frame, iframe;
7 T' O7 ^- e* {& ~) @4 v( [" Z, F if (itemFrames.length > 0)
4 s+ k) q. Q2 v2 Z$ U& { {/ R R" g4 ]3 v# ^9 I
for (var i = 0 ; i< itemFrames.length ; i++)
) s' B- X; G( m0 | {7 x, r4 H' s' l& x
frame = itemFrames.contentDocument;: I( w$ U4 U* e) q, d0 M
this.RemoveHide(frame,objname);
* V7 X& _" {% P# j- j9 r }& c" }! p0 D: y* ~' e
}
* R& V1 [4 O) t9 p& p; p( M if (itemiFrames.length > 0)
3 R& {/ z/ x$ ^4 o% U2 k2 u% y {
6 c/ N% p1 Z5 C. Z6 E; h for (var i = 0 ; i < itemiFrames.length ; i++) 8 b( T0 ~& r# e* f6 X# W
{. V( _5 ^1 c+ E
iframe = itemiFrames.contentDocument;
j& |2 E* q. j, J- i9 } this.RemoveHide(iframe,objname);
9 k. G5 _( w0 H4 l3 { }% @: L" O: g/ U+ O
}; T- ?- T M. ?4 I
}
# z% M8 h+ F4 ~( r( } catch(e)0 m2 Y/ G9 @6 I. L
{; m4 [1 p$ m9 c9 H7 d( t$ x
if(debug)) }% J7 j. \$ s
{
/ S5 Z5 k9 ~+ a* a alert(e.message);
2 E b% ]6 k( Z$ k: q! [ }, \: a7 P1 ~2 C* }
}
R6 ~0 s7 O+ j5 B' A2 } }- N' M: x z0 }3 q: {* K- b
# m4 _8 x/ a0 j7 x4 }( q9 f
}* e0 j5 j' e* f( f
9 w. Z7 f5 v! ~8 N
function getRGB(colorString)
/ p/ C2 f' B0 D( @! N( _# K; j( @{
4 @! I' L( R# b* B; F var RGB = new Array;
( F; ]) b3 C) n% K- x' V! \, u var tempSting=colorString.substring(4,colorString.length-1);5 _) m9 _" ?1 a
var tempArray=tempSting.split(",");: {8 z0 n! I$ \" g2 _) b# j! _
6 E0 w+ c; g" E$ G3 R4 P# j
RGB[0]=parseInt(tempArray[0]);
) f& T6 R$ F' S+ R. i9 M3 K: S RGB[1]=parseInt(tempArray[1]);
8 v" ?7 T. Z% R3 v! D' S* J1 _ RGB[2]=parseInt(tempArray[2]);/ e1 O8 C% q+ Y# V+ v+ \4 a: [9 ~
8 E0 \: x4 X0 c8 K return RGB;. }% n# G" X( R' X
}
& c: L( l2 e) o4 ^2 Efunction keys(evt) }; }: w/ V" l/ m) F2 _
{
9 V+ O' D' K$ x! ~ if(evt.ctrlKey && evt.keyCode=="81")
/ T" s" ? C( Z* p# s. {8 a { 0 X8 @$ }2 Y5 T4 @
CleanHideObj.on(0,1);* X& ]9 b4 ~( w% A/ a* ]# X
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q"); : q. n$ p; V- x) h/ k4 S# _
- ~8 ^( A; k( N# n
} ! |9 X, W7 v5 H; ~7 ]8 O
}
3 o( y1 F6 W b/ f9 K6 S9 Pdocument.addEventListener('keydown', keys, false);
/ N- Y, k' i8 IGM_registerMenuCommand ('Clean Hide',7 Y4 i1 @5 a/ U9 ^, p6 |
function(e){
. Y" [: s. S: f( A3 g* T: @9 F; RCleanHideObj.on(0,1)- t, F# K, x( V. T0 ^
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");
& |4 Q6 c7 P/ h7 W8 g6 T});
; M) C' ?2 a2 r% f4 X! m |
评分
-
查看全部评分
|