|
|
发表于 2013-4-7 23:47:38
|
显示全部楼层
本帖最后由 chenmeiyuan8 于 2013-4-8 00:01 编辑
+ b: v7 N0 H* Y" C8 S: a
: x2 Q/ G% Q7 P# s& p- S火狐插件,用猴子* y9 t/ t1 @$ G7 v3 [3 U1 A
2 v1 k. l* z2 J4 {
var debug=false; . `$ E+ ?. o8 U: u6 M1 Z9 J' l
var CleanHideObj=new CleanHideClass();7 V0 t, r/ N3 v* U; A4 `" Q
* _4 g/ P9 U* h) W7 Z7 I
function CleanHideClass()
! t% ]3 J- _. F9 p b; h& b- |5 E{
: R- a8 [) f0 c9 \2 m% @
$ r% l6 m1 `2 g9 Q# T8 N0 l2 ?) C this.on=function(id,bMZ)8 F- R" [# \, m
{6 w. s6 }+ X! v/ |
# ]5 q4 Q8 J9 J6 C6 C9 s
if(id == 0)# [ q- u3 b4 y9 n
{& c6 }0 x' }+ E E/ r
var page=/* document.getElementById("content").contentDocument */document;
8 Q6 g& O, ]. a" D this.RemoveHide(page,"span");
5 g2 B7 V @9 n# d this.RemoveHide(page,"font");
& n( ^! O1 Q Y' | this.RemoveHide(page,"div");
) r3 Y3 Z! P9 p this.RemoveHide(page,"p");
a% c/ J4 R( n- w* t) g
* K" X, _' d! k9 ~9 S$ p% G. o }
% E6 c; Z9 Z! i2 k) C
8 D4 g& N- P+ f$ w- ^ }. w6 b# w6 p4 ~3 p
this.getobjstyle=function(node,prop)4 s- P5 r1 v# t( g9 {. a6 k
{& q. @2 H s# l X
try
. ?) ]9 }( M0 S) D9 G {
}" j t0 e" k6 V! a. C return node.ownerDocument.defaultView.getComputedStyle(node, "").getPropertyValue(prop);
. _: C4 _5 U% z; G8 D: A }
+ Y+ A6 L7 j" G1 r catch(e)8 j2 [6 `$ i8 X2 j. D$ v
{
3 I6 C8 Y/ ` j/ F- H- k, ~. P if(debug)7 D3 D2 \* H& k* X, k
{
2 `6 k6 r# D/ H: \ alert(e.message); }2 J9 j! O! [9 B( r% s
}* V2 k/ w% U, t; v2 ?. @, K
* @ S8 n: t) F" [ return "200";
9 X& ]3 N1 }% f7 i' B! ? }
" C. q5 g, V1 ^" b: j- b! K }
2 P7 r- S) y, V0 `- k" j O& ?' j) H$ w0 x& Y% r) d/ [
this.RemoveHide=function(page,objname)* y- X" F8 y0 I5 m* `6 v3 b
{
B! \1 m- r8 f q) w$ N# x! g try
- S3 c& U! ~1 D: H; V {
0 Q7 w( t1 J+ W# _% K6 k/ w% k var minValue=15;/ B7 W8 q& l( ?4 W& v8 K/ y/ t
var objs=page.getElementsByTagName(objname);
, Y/ q* F% F' d. v- \" f
, w$ @. \( a( |2 }# e' ^4 a: E2 X if(objs.length == 0) $ `/ A8 V7 X% f- H/ e& t0 Y
{: d3 O: X1 F1 O) L) [6 f
if(debug)+ ?, u, [* _8 [8 W) W5 ^5 f1 X* X
{
( V5 v* _, u/ f8 q- l alert("no object found!:"+objname);
6 K* ]2 C' ^( ]$ ? }" R i2 N! g- M- Q
}
6 f/ n: K2 \0 ^ x0 S else
* s- d5 ?* t ~% u' ]+ q. s) s {
, q2 _. y2 W5 b9 W1 S2 B 8 `' ]% d0 g! `( G
for(var i=objs.length-1;i>=0;i--)
& n# y0 Y S( ?3 M5 O( F, U$ N5 B {
1 {, {1 p7 W' u1 W7 N8 B; k' n0 a3 d var node=objs.item(i);
+ }6 L) z, d) q$ I
; K' M6 N. N/ T
# y7 p+ ^9 ?* c if(this.getobjstyle(node,"display") == "none" ||
2 T% y/ v5 l, x+ B this.getobjstyle(node,"visibility") =="hidden" ||
; i ]- P* c/ _+ A% p4 j& k parseInt(this.getobjstyle(node,"font-size")) == 0)
, ^, P# I5 m) e1 _; S* s {
- k! K( S) u8 L4 x if(debug)+ p( c0 [7 }. h5 N! M
{
2 [/ N/ e6 y, f3 w* q6 Q alert("remove invisiable!");6 b" S0 S/ z5 D) G8 X" ]
}
! w8 D, f+ O9 K' p1 A: a ~ node.parentNode.removeChild(node);6 x8 m+ ]+ l0 c+ y
. y- u: ^$ t( M, i+ s }1 E4 P5 y4 }% I5 F
else
0 x* T. ~# a; B {: l( f D! z% G! V. G# r% c% f5 I" W
if(node.parentNode)
" h6 N/ {7 ~+ R, x! `0 b# H5 U {5 o; T7 L! R' ~
var orgNode=node;
9 \( Q) q5 d( `- ` var orgColor=this.getobjstyle(orgNode,"color")
- k& E* h& {0 @6 J2 u- e* s var orgRGB=getRGB(orgColor);
7 Q6 {9 n5 O4 q5 G4 B0 [" x3 J
" Z; b4 l4 K+ U4 v$ p: K: T var parentNode=node.parentNode
! q$ T' ]0 { n4 O' V9 D var parentBgColor=this.getobjstyle(parentNode,"background-color");
( }% Z2 R! ]. H, Q . w6 a4 C$ T1 v( I( S; D$ X9 V+ Y' P
var isLast=false;
% W4 f f2 b( L; Y6 c9 l# m # L! J2 G( X: y* w& ^ ~
while(parentBgColor == "transparent") 1 f- c* M. P3 H; J" s7 M
{
1 O$ ]: P" Q9 T; m! \3 g / n- N/ w+ J3 f: P
" ], i, F" r/ V9 k, O B
if(parentNode.parentNode == null); V# o4 {% \7 Q, s
{2 ~2 M$ d' q# L7 P
isLast=true;
8 H+ s [, |8 ` w# h! o) Y& _, g break;
, B2 h$ `5 E" t2 B5 [+ O$ U* y }
. _) X6 x( F4 d! V; P" ]& d parentNode=parentNode.parentNode;; Z, }5 T4 r8 L
parentBgColor=this.getobjstyle(parentNode,"background-color");( A$ A8 s# `! Q1 O2 c4 n
9 V, e& x8 O& w, Y: T- j3 \
if(parentBgColor != "transparent")
- O1 J7 y9 K6 _ {
3 T/ D& Z D& x break;
7 }2 r5 o4 E' x. G) Z- L) E }- X9 \# a. S: U9 ~: g* I" ~1 z
}
& t7 ~* d6 E! _5 t6 J0 q if(isLast) $ d8 A# ?7 E- i- B3 D
{
5 i- `' ]) Q& E if(debug)
3 B! f2 ?3 G7 R; z6 K {
. W& i0 O" k& g/ n) d+ P alert("last!!");$ ?& k& U( k2 M, V* j. h
}* H- P d' D; J3 i; P% N
if((Math.abs(orgRGB[0]-255)<=minValue)&&(Math.abs(orgRGB[1]-255)<=minValue)&&(Math.abs(orgRGB[2]-255)<=minValue))
2 u. j' w8 e7 D" M2 D {1 B ]9 L. \1 N( y+ b6 S
orgNode.parentNode.removeChild(orgNode);
# z: D* ?& ]% E2 D( P }& O+ u l5 M1 G0 q& @! N4 f
}! t3 r8 [) }6 ]# E) B' [
else. @* y& R! Q+ J7 b9 {7 i
{
* J4 x; i8 B, N( l; I/ N if(debug)6 P. b6 w6 U8 u6 L
{
X$ z; e8 N( a+ N$ M alert("compare color and parent bgcolor!");
. ]5 ~- b( \" O- | }6 n1 P [2 ~. _9 ], c
parentBgRGB=getRGB(parentBgColor);! F0 G: Q9 v# Z5 O
if((Math.abs(orgRGB[0]-parentBgRGB[0])<=minValue)&&(Math.abs(orgRGB[1]-parentBgRGB[1])<=minValue)&&(Math.abs(orgRGB[2]-parentBgRGB[2])<=minValue))" w/ y8 o% O( v" |1 U
{9 |+ G2 H7 H: ~2 |6 P2 w5 v
orgNode.parentNode.removeChild(orgNode); ' m5 _- f8 q0 `; N
}
% o2 `2 _1 K; M# d }# n N$ M( }6 k! b# |: V
}
/ l+ y/ Z& @& j' @0 [ }" g$ C' a0 h! U7 B; R& e: z
}
( ^# ~, @8 i0 Z- d# Z0 D3 K }
5 D; C' H( i! N& K0 z6 {2 a4 \8 h, C+ I
9 I& X1 Y! h% H; q* w
% U% _9 {! g6 R) B var itemFrames = page.getElementsByTagName("frame");) ~+ E3 q! H0 n$ `
var itemiFrames = page.getElementsByTagName("iframe");
! E" _* g! r) S1 O! r8 a/ z
2 U3 x! R* P& \, e var frame, iframe;9 s! a; B6 h8 a- A d
if (itemFrames.length > 0)! L$ |2 \( L) M; d4 Y
{
5 }, g% E+ f% @( i) F0 l for (var i = 0 ; i< itemFrames.length ; i++) , G1 O! N" c8 h$ b( D" U0 i9 s" o
{) Z- {* p! B4 F J
frame = itemFrames.contentDocument;
/ S, U$ o; Y% S3 l this.RemoveHide(frame,objname);
! U$ _* \/ j- ? }; u0 K7 L2 ~- {+ U1 N. F
}
3 I9 U" A* p V9 d; x+ ~ if (itemiFrames.length > 0)
5 x1 x, C' g0 o- e {. ?' j: i" |: k4 v# V1 i3 o
for (var i = 0 ; i < itemiFrames.length ; i++)
% j6 _# ]& n6 d" k$ Q+ z: K. w! m {
/ m [9 b$ }+ d2 A8 i- B iframe = itemiFrames.contentDocument;
7 L6 q5 f7 F, g( g$ X# h( r this.RemoveHide(iframe,objname);
( t. K' e1 ?$ T7 _' c }
* k( F1 ^' w! c9 l0 t5 t }* x+ f! t# u+ A! k- t
}
E' p6 L# l; z7 O% c9 _" `7 J catch(e)0 `# `: d; @* ?5 J8 u$ G
{
9 x# y6 D! U& W- T1 K# r if(debug)# O; R; y+ ~" G! M4 X
{/ {8 J3 }) I5 P/ q7 ^7 f y& B: @4 I: E
alert(e.message);2 @ e- R" Q" J- `1 v1 H: a+ Z, c
}8 j3 [# b8 S& Y- p: T5 ]: T
}
6 B, w9 x" w8 Q+ S8 y4 H" Q" u }
" N1 K9 A a8 N: p* V L
, _: G& f$ c. e0 ^}
* }8 H2 V& M4 j- ?/ x; q7 ~! b/ q- b9 h5 V
function getRGB(colorString)
( T8 ^' g! f4 P* b- W. V4 ^{
0 A Z- {8 a3 o: O2 R8 S var RGB = new Array;( W% x. q" |; i
var tempSting=colorString.substring(4,colorString.length-1);
D: M( v* C' ?0 O. J$ y- C- F var tempArray=tempSting.split(",");4 B" F2 y4 ]4 H3 e5 L, N
' e+ T2 L% [0 x- ^4 Z
RGB[0]=parseInt(tempArray[0]);
1 i% n5 U7 A. |5 X RGB[1]=parseInt(tempArray[1]);' M7 W: A x( i2 Y% l! d _/ J
RGB[2]=parseInt(tempArray[2]);; |7 a {, H4 E# ^6 m! x9 t
E" q5 D) o3 M2 r8 J [4 b0 x return RGB;% U" _% p7 H( {- {1 i( R! p e
}
* l( l% a9 {; k! H* ufunction keys(evt) $ h4 D( O: z q4 d' f
{ 6 }4 }8 r8 u; O8 A( K1 P
if(evt.ctrlKey && evt.keyCode=="81") 2 N/ R, V( l' @
{
$ b Z" ]1 p( m! K: F CleanHideObj.on(0,1);
) w8 I& {# \# [- @! A# q, R alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");
* t6 y5 ^' g' L3 {' C' a
% q; G% H) W! b4 y! O }
- W7 Z+ ?; c; O6 _ } H8 U. ]/ I8 a; a8 h' u
document.addEventListener('keydown', keys, false);
% V, M8 `+ c1 A4 a# X, A/ F. XGM_registerMenuCommand ('Clean Hide',
; F. M! B6 i( sfunction(e){
- z1 M3 Y; t U( S. C+ ? n. `9 U+ RCleanHideObj.on(0,1). _% h$ j1 c8 D" u& M. |7 a; Z
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");9 C7 U' O8 g5 p9 w- J
});
' C- w G) Q1 |2 o8 p2 Q6 Z8 e |
评分
-
查看全部评分
|