|
|
发表于 2013-4-7 23:47:38
|
显示全部楼层
本帖最后由 chenmeiyuan8 于 2013-4-8 00:01 编辑 / @$ U' d3 m; S5 |1 J9 m7 O3 ^
2 E- G" R* d8 k
火狐插件,用猴子: C1 h, E6 ^* X/ Q; {: [
, C# R" i1 l1 d& b5 s( e
var debug=false;
$ z5 v. J7 R3 T* w+ M, Q' T* rvar CleanHideObj=new CleanHideClass();
' S0 c" ?, X# Y4 K# A# |3 ~
; y9 @ ?* S0 r9 K C! A# a: ufunction CleanHideClass() n0 X/ P" }. z2 U* T$ d
{
3 J- _" W- {6 h. S3 ], p U: m! T5 r) l4 R+ V; R" k
this.on=function(id,bMZ)
5 q) v" R) }* q6 Z( S4 a: _2 ~ {
7 C" f0 E# l- o9 j( k" y L; c" j' X; E" C# a( A* R3 ]4 [
if(id == 0)+ `7 M' x, Q; Q* P# e6 D* f0 z! I
{
- P/ x, c% ?, M0 Y+ l1 @$ b6 E var page=/* document.getElementById("content").contentDocument */document;
" T x2 b! @, t8 Y1 Y3 H this.RemoveHide(page,"span"); ` S1 h- }& A! c# S
this.RemoveHide(page,"font");! U( s/ u. U4 p: a
this.RemoveHide(page,"div");' ~% e. h$ D) f5 ~: G& A" D
this.RemoveHide(page,"p");1 b* n% n$ U. W6 N- L
. w7 |8 V$ Y: v1 B% N/ ~1 M }" \2 n- J( ?! y' q
* C6 Z% S* h- W, w4 J
}
2 i& R5 D7 A& H3 H& [& b this.getobjstyle=function(node,prop)
. U: W: B' M: J; d {
4 F4 n, ?( u7 j, S2 q" Z/ x try; R: l- ?$ J- @5 U( Z
{
3 f1 V# g4 ^! s, Q) o6 K- Y return node.ownerDocument.defaultView.getComputedStyle(node, "").getPropertyValue(prop);
* ~, P, L. J# P/ T5 J1 ?! U }
4 f8 a) B% y6 `+ i catch(e)
6 f; }, {. k% r$ R) n& z& b {6 j# ~( |2 i: `3 {. `6 P: A6 L/ w
if(debug)3 E! U2 ?5 V( `9 ~7 \
{3 z# L! q* J; W2 o* ~5 R
alert(e.message);5 N* g5 U0 R: D) \8 ?; e# [
}
) _* C- y4 h9 p) L: e L+ S% w& s' [ + [! P: M5 O* e5 N( L0 k" T
return "200";$ P+ b6 C, n9 S
}6 H! P' M5 Q0 D! U/ E3 j, q
}9 i2 C6 m4 z8 v# Z( W8 F
2 d. u3 n8 R+ C# d this.RemoveHide=function(page,objname)
% V% r, s& G, c" h5 ?9 Q4 r {; ^1 L: C5 w5 e y0 P* ~, a6 N7 p
try
2 J7 B! I- o% D1 h {
( n2 W0 w7 j# M- M var minValue=15;: Y! x4 C4 R: Q- i% X9 U
var objs=page.getElementsByTagName(objname); s1 [" W# k$ G) P0 O
. i2 ~" x+ ?% \7 p# A1 k$ j
if(objs.length == 0) 4 ^ J% M; Y: N7 |/ A3 Z! ~: {
{
2 I4 {9 s7 l+ L L% h if(debug)
" ?3 Q/ X$ e, U {' c$ D {* X8 ~9 ^+ v* Y) ~* Q4 L
alert("no object found!:"+objname);. G. V& h( s4 g" ^# K
}* q( o( _( m9 w# x/ x# n
}
- q0 l) T+ ?1 A) W6 y3 }9 ~" y else
, w( s1 q- D4 G F+ f5 y {
3 }' }' l$ [3 h4 F# R5 @& U$ J. U% G+ n + B% g4 P+ y4 `& y0 ]6 C6 D$ b! g
for(var i=objs.length-1;i>=0;i--)
) {" q0 M( ?- x* w {
@% ?. R% p! U& d) I1 J$ i var node=objs.item(i); , u6 y! k% K/ D6 Y7 E: Y, y9 M
, F; w% f9 y: _) n, k( ^ . c6 b* b+ W! s5 ?3 b
if(this.getobjstyle(node,"display") == "none" ||! G7 i) X$ e: Q9 @2 ]
this.getobjstyle(node,"visibility") =="hidden" ||
- E# I) b/ [6 I parseInt(this.getobjstyle(node,"font-size")) == 0) ' @" g0 O: l. ~% j1 x. t/ k
{
6 ^. {+ V$ m/ }0 ^4 n5 B0 m if(debug)6 u5 p: |8 ?) n# M
{% V$ Y7 _5 e; h% }9 p7 g
alert("remove invisiable!");
4 D4 c) m0 D, @6 z1 U. i2 Y }
) W' m; X# ~: y1 U/ A+ h. W5 Z" Q; n1 n node.parentNode.removeChild(node);+ r5 |0 r+ M% c9 M
: c2 ]! r4 t0 N2 @ @% l
}, N3 w- r6 `6 t( A9 _
else / r# h% ?, `' K% V# j
{
( x* f& B" \9 m7 s3 P3 } if(node.parentNode)
3 K# f5 F: r& Z7 r2 s6 k {# r7 @; l" F4 M, m7 I) u
var orgNode=node;
5 C" ~& F& w: E& ]8 N+ ^ var orgColor=this.getobjstyle(orgNode,"color")
8 ?3 |& b3 o' @' L6 p2 p0 ]( \/ ] var orgRGB=getRGB(orgColor); 6 |1 R( Q3 r l$ e5 O+ p- t
Q/ O2 a0 A" ?5 z# ~( G
var parentNode=node.parentNode
( g' {. | L [. x, { var parentBgColor=this.getobjstyle(parentNode,"background-color");
1 D) F6 l& O0 \
' ~6 s. q9 P5 K2 ]/ ? var isLast=false;
- o7 V3 d) k8 p; s
/ S. [! k/ y- c2 P9 L6 i( A- o while(parentBgColor == "transparent") ! m8 {3 m) [8 v* k$ P7 Q$ ?
{7 [2 | E L$ X0 o- \/ m
' g6 }3 |/ v# M6 }- ?! N
3 G7 w0 ~7 F8 _7 v) g' [; ?0 S% e
if(parentNode.parentNode == null)
& d7 Z1 p. O, n& J, {6 | {
5 i* T6 D: i: s) u isLast=true;) u5 m* s$ n. d0 K' M1 B
break;& u' N: ]' p; b* H: q0 ?
}
) O' W) \- e3 p" b+ n/ r8 j parentNode=parentNode.parentNode;4 Q9 o- i/ E5 s! V
parentBgColor=this.getobjstyle(parentNode,"background-color");* Q8 p( W+ T; p- J" S
5 y. M% W& t& Q* [7 E* O
if(parentBgColor != "transparent") / B, ~4 E6 C. f9 Y+ k
{
# K! A- h7 [; N0 W V+ Y2 j break;
7 Q, T- e% ~5 o; J$ l+ x }$ v. r! r4 }, b6 R. _! ^ W
}
; e% Q, v1 j: {& r if(isLast)
6 e7 F+ w; K& m) H2 z {
% g( g8 Y7 @7 S% \; _ if(debug)! p) L# s. w2 I9 @2 _2 h0 K0 h/ a
{0 v' M2 M2 Y/ g
alert("last!!");
7 v2 _4 ^% v% q' ] }
2 [% G3 i. O' u if((Math.abs(orgRGB[0]-255)<=minValue)&&(Math.abs(orgRGB[1]-255)<=minValue)&&(Math.abs(orgRGB[2]-255)<=minValue))2 \3 |3 G' w" U( }# x: v2 s
{
0 m% J3 t' P1 X& {, J3 | orgNode.parentNode.removeChild(orgNode);
4 i, n- W* `4 B0 z0 x# A }
- A2 u' d0 x$ j, G1 V }- \! _9 n" a/ X' C) c4 B: w3 \
else
! C4 ~8 L/ \: |( P# P {3 J0 n+ e$ |; A0 Z9 p
if(debug)2 k* P/ ?! x! Y7 Q1 M; n, v4 I
{4 p1 p7 u5 O# W+ n+ N5 c) C
alert("compare color and parent bgcolor!");
1 {& E0 c6 o. j- c }
3 d# @9 \3 s N# m9 H parentBgRGB=getRGB(parentBgColor);& k G3 C* K* s$ A
if((Math.abs(orgRGB[0]-parentBgRGB[0])<=minValue)&&(Math.abs(orgRGB[1]-parentBgRGB[1])<=minValue)&&(Math.abs(orgRGB[2]-parentBgRGB[2])<=minValue))
# Z5 o2 b1 f" V! F {
3 U* k3 w, U% l5 z orgNode.parentNode.removeChild(orgNode);
$ S% K' N( b+ E7 \2 \ }% b% o6 i) `( N5 }! |7 ^! b& x. m
}
: k0 S+ {8 @' i/ A0 M }8 y7 T9 k& ~) w9 e( L/ p" ]2 l
}* S. H0 e" G1 K0 z) [4 h% R
}1 L1 t, ~! O$ Z N* z
}
+ z5 d& k* C' W/ _* r+ g; E 7 Q" e& U7 ?, \. F3 x' H: P
9 l* w2 j3 \! F& V var itemFrames = page.getElementsByTagName("frame");
" ]- I0 O# t/ Y/ f/ _# C, s$ U var itemiFrames = page.getElementsByTagName("iframe");3 N* f# Q! E* q% R$ H
' V9 j5 L8 t. D) P7 I+ K1 k5 |
var frame, iframe;
0 r( w3 \+ n# ?* f6 f* a' c if (itemFrames.length > 0)5 D$ e" t( Y. L- K+ l; {
{2 U) g4 n. [2 K2 a% C# [# g
for (var i = 0 ; i< itemFrames.length ; i++) % O, y. v: k) S* k
{
& \3 X! g( b& }2 D6 ~3 c4 u frame = itemFrames.contentDocument;6 B+ ~) D/ H1 P! B
this.RemoveHide(frame,objname); , W+ F) ]5 ~/ p3 T+ N- s4 [) c
}9 Z, p, g& ~6 i2 n" I. t
}
' u/ Z* ^2 F+ B. d if (itemiFrames.length > 0)% r/ ^ E/ ^2 `1 Q! h* D: ]
{5 ?* P8 \$ P1 @$ ]
for (var i = 0 ; i < itemiFrames.length ; i++)
5 N- V% u3 Z! P! D9 I; x" n2 y {3 ?3 T+ @( I/ x; ]8 i
iframe = itemiFrames.contentDocument;
9 u) G1 d7 q- s& A3 q+ ]/ ~4 d this.RemoveHide(iframe,objname); i+ R% ?8 m- o$ |: m$ p! B; f( f" c( f; a
}
5 r2 M- k9 M4 z* |* L }
3 H4 [7 U, {( l( L6 Y }: k4 `5 n# T# |3 P0 l6 o8 v
catch(e)
' i/ V, H9 P+ Y& J, |& C, S& i {
5 @; o" m0 y2 N: q8 C( S if(debug)" m/ l. ~- Q! \8 {' y
{9 N) a( Z9 Q7 r+ h" ?
alert(e.message);) k# n8 ]% ^6 {9 Z6 p
}* f$ r6 a/ L) O6 r5 b8 I% B
}/ W7 H( Z2 n( [) q
}7 {( K6 x% d8 j: W1 X
* E3 Z% _# T$ z
} `) z7 C" B3 A- e1 f
6 y7 r- f+ v/ B# @# m+ k; a: [
function getRGB(colorString)
2 E0 J) F7 F& k, p{
# \3 s7 A4 D' `3 N var RGB = new Array;
% b% }1 S) q1 E7 A+ f var tempSting=colorString.substring(4,colorString.length-1);
; H+ c; [0 B0 Q7 S; \* C; a0 c var tempArray=tempSting.split(",");9 h- u- R+ @: M! y( E/ P
" }: Q4 B; K+ @) h8 K" c# W
RGB[0]=parseInt(tempArray[0]);! e! ^9 F! ~$ y1 G/ s
RGB[1]=parseInt(tempArray[1]);
; h( R( x4 n4 t; D RGB[2]=parseInt(tempArray[2]);* H7 ~$ Q8 c e. D& u! j0 B2 e
5 P* |% u" @( ^. G3 }# Z
return RGB;1 R- F" C. T# j7 B* Z
}
6 n- Y' b5 u w5 \/ _" p j O! Ifunction keys(evt)
+ O6 |/ @" q5 Y2 x; p {
* F8 Z1 `# ], E$ j |4 F1 G if(evt.ctrlKey && evt.keyCode=="81")
. _. ], R9 Z2 w1 B) B { , M X j7 C; c; ]
CleanHideObj.on(0,1);
/ Z! ?. G, q! E* M9 h alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q"); 9 a7 b6 E; x1 L% o1 t2 s4 K
. j7 }! E+ R3 Z9 a% t1 W: { }
$ W. W! H, a l9 N; j }2 z } 1 ?' _" G$ J$ s
document.addEventListener('keydown', keys, false);
- W$ [. l M, ?$ G% WGM_registerMenuCommand ('Clean Hide',4 ]5 W0 Z6 t8 e& D% r& ]
function(e){
- e E I/ E K+ X- XCleanHideObj.on(0,1)
$ y* ~2 ^& H/ j. B* E$ r7 t" Calert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");5 r4 d2 L* d/ {1 S1 D# c* o
});
! i: V3 \7 X' x9 [8 z |
评分
-
查看全部评分
|