|
|
发表于 2013-4-7 23:47:38
|
显示全部楼层
本帖最后由 chenmeiyuan8 于 2013-4-8 00:01 编辑 # E5 ^7 t+ x: X7 S* K$ N
% b9 }- ?2 R1 m" g% o P. q4 O3 A火狐插件,用猴子
. E" h W0 x* H5 z* T" q4 _
4 {9 t' P, q6 L+ _# ]var debug=false; $ ]% G: @$ H, {) z
var CleanHideObj=new CleanHideClass();0 D6 {- O; {. [' U' G
1 J4 A- d( g1 [; m. M# |! l1 A- Q
function CleanHideClass()
' n ~$ p' S- }{ : d: `- g6 f+ _
8 {( F+ z% u% |- N) M
this.on=function(id,bMZ)
8 q' c4 e# V5 x: s6 A/ k {
/ \- A% E" w6 A/ p
Q; O+ B# d# y- j3 x Z if(id == 0)
c+ v9 J5 f; k N' [8 `& x8 B1 ] {3 \' \8 o/ u9 P' B
var page=/* document.getElementById("content").contentDocument */document;
6 O. R: D* [3 V this.RemoveHide(page,"span");- F% l: N) d% Q
this.RemoveHide(page,"font");, k0 o& q2 c, E3 D
this.RemoveHide(page,"div");! B% z! T8 a1 H. n8 h7 ^: y
this.RemoveHide(page,"p");
9 ~+ b, a, Q& m* f5 ~" P& u 1 J+ {* t( z1 |7 W0 i) x# k5 D
}4 S! U; H# r2 a
D7 ?: N# H- ^* w
}
& R; r X' R* k& e y7 `, [ this.getobjstyle=function(node,prop)
, x* [0 V, \0 A6 m. n9 t {
. |- k- O* f+ \3 N8 c try
+ J* I: C8 ^! Z {
/ ~) o# ~1 v: ~6 F return node.ownerDocument.defaultView.getComputedStyle(node, "").getPropertyValue(prop);0 Q( \" F$ h( e
}, L! v- L) W1 C- v9 b7 ]- ~+ H
catch(e)5 E* y' o' R. K9 x* R ?
{
: ~4 S g% b' E' j6 x if(debug)
: S. x1 p, e/ f6 P { b% t) S+ d2 t* H9 d
alert(e.message);4 r h3 r; k3 x
}3 P+ o1 W7 @* }* o, M, z7 W
; t* [$ T0 \2 c% _% J5 c6 X return "200";, m( G+ n4 B( D% w
}
! h7 \* X5 A' c* l# o" } Z }
& _7 _0 O$ s5 ?/ h
# Z; y) U& m. t1 c, H this.RemoveHide=function(page,objname)( h! B ^& S3 e; N5 @
{
& Y4 _' I4 r2 P try
! Q1 G7 X8 t4 N) u* y$ U8 b' Q {, [, S' A) m1 c8 t/ `- |. b
var minValue=15;
/ ?4 u6 z: T# Q$ l var objs=page.getElementsByTagName(objname); % O2 [9 A6 {3 T4 s8 C
7 Y" U% L( p7 N Y- { if(objs.length == 0)
: \+ ?) G- C# J$ E7 i {$ F7 ~3 {3 U g) g* x
if(debug) j. T# X" ]1 N) t# A
{( i. ^ q! B7 x/ \ q; U# d
alert("no object found!:"+objname); M2 @$ u% n0 S# W3 ~! k
}
* _3 O3 N% z$ z }
8 X8 {, M. K1 M3 W1 j0 ~ else
9 w& p4 g h& [9 C6 J* N {$ t' j+ F, s) _4 p% T
2 ]: X/ M. W/ I3 H J x for(var i=objs.length-1;i>=0;i--)
' S8 J7 o; ^1 Z* r/ o {; [3 {. @! L) R! \* R/ @, ^
var node=objs.item(i); : v3 ?* w p: c
# ~+ ?# x1 A. Q3 ]- _$ I
- q2 ~7 E' h0 ~ if(this.getobjstyle(node,"display") == "none" ||
" D( e; j3 g8 _6 x$ E% |0 u& a this.getobjstyle(node,"visibility") =="hidden" ||
5 t3 F8 s0 S4 D4 S- G+ k parseInt(this.getobjstyle(node,"font-size")) == 0)
9 X5 \" t/ O9 t1 q- N {
I: h y5 p8 T if(debug)
4 w/ ~+ V% J8 F! o {
- F% a' L/ G5 _1 s; R alert("remove invisiable!");$ L# W" Z! b* d
}
1 n+ q) N+ x& E! S node.parentNode.removeChild(node);
+ |+ r7 \1 t1 |+ {5 K , C9 w6 t3 l' b& h2 I5 \3 ~
}+ f- y5 N3 T* B9 d
else
3 F) g: l+ p9 Q8 ]4 ?% T {
! e8 V0 T' v) `4 k6 B0 p if(node.parentNode) 7 L: y' ?/ E: ?) h
{3 Q: ~5 b3 s2 w3 N
var orgNode=node;
2 K+ z/ n1 x( u6 D7 \" q var orgColor=this.getobjstyle(orgNode,"color")
6 e, [+ `& o- `7 F' W7 G var orgRGB=getRGB(orgColor);
, f: q7 k( Y! x7 g- A! N
, D. M! m, T. s2 u& V c1 B var parentNode=node.parentNode( ^, z6 j+ G, g, x7 c3 |
var parentBgColor=this.getobjstyle(parentNode,"background-color");) o- ^# P4 \, ^ f9 k! J% i; a' w
* G. m3 e8 Z8 X' z
var isLast=false;
8 \8 y1 j' N5 n. q9 D* v5 y
9 }+ _& A) Y* f5 u3 k# y; Q* T while(parentBgColor == "transparent") 4 | k7 g& x% u# T2 G
{
4 e/ Q: T$ E+ X+ J ! b2 Y7 N5 b7 i5 @ ]* c- F
' r, u' O1 @3 ^+ x0 P if(parentNode.parentNode == null)( w7 [6 F% U- M" W- z6 w
{
2 C, P/ }0 V7 O6 n3 k! V isLast=true;+ z g4 F9 Y0 q, T) _* l, U
break;- ^1 Z8 ~: F# J8 N
}" y# U, V4 b) g% ?8 o& [
parentNode=parentNode.parentNode;
! |7 y" B. _$ D0 O/ u o( M q8 K parentBgColor=this.getobjstyle(parentNode,"background-color");; Q% w$ p" f% J8 e
+ Z4 Q: n/ n/ A
if(parentBgColor != "transparent")
6 b* \. F0 ~2 G) c0 ]+ A k {
* U' d+ `: c: |) ?! t+ Z break;6 V! `1 \9 V( q: x( q7 i7 Z
}
, j* L7 x) r3 m. |! t( ? }- e8 W. s5 G) W6 S& w0 Y9 z
if(isLast)
& k+ f" g; s, k/ F7 S9 O2 E {
- V( }4 u' x, a) ~2 d if(debug)) a% W9 _ f& o, ~# h$ m
{
4 I& z2 m. ?) S/ d" r5 |4 h) k alert("last!!");; l( o" f$ W8 g4 S) F% `
}% b, j8 {; s( |' a6 r
if((Math.abs(orgRGB[0]-255)<=minValue)&&(Math.abs(orgRGB[1]-255)<=minValue)&&(Math.abs(orgRGB[2]-255)<=minValue))) V8 w- R8 Z* f/ M
{
9 d# v) i- K' ?: i/ s" g/ {+ D& C orgNode.parentNode.removeChild(orgNode); - Z0 ?! m% c* y& ]
}! E" X0 }% N+ W$ I9 p W
}* h8 F" s/ [! p4 U8 V
else! S( g* f* R% L5 Y
{* K# Q8 r% } A! g `! C
if(debug)
9 b) U& O& G8 _& h0 e {
4 v3 m9 e/ L+ Z, ^ alert("compare color and parent bgcolor!");4 l5 X: O+ c+ a/ C, a. _
}. k( X& U/ D9 j1 m+ s
parentBgRGB=getRGB(parentBgColor);
' S. e) U* ?) {; e8 s4 y if((Math.abs(orgRGB[0]-parentBgRGB[0])<=minValue)&&(Math.abs(orgRGB[1]-parentBgRGB[1])<=minValue)&&(Math.abs(orgRGB[2]-parentBgRGB[2])<=minValue)). x6 K- C+ \8 z$ ?- [( y2 A
{% b7 H) b" d: n( Y
orgNode.parentNode.removeChild(orgNode);
8 @9 R! K& d8 L% h }9 Q) C# E. Y& v# h: ^ e3 V
}
! D+ C P2 ]: W8 x }- ~$ [, X+ z( o
}
# N+ L7 M# d3 ^9 p }7 h* s$ x; H0 r8 w- @6 F& n
}
0 v G& Q+ p: M3 R 3 p6 l0 W* X, k3 p
) y) I% T* K+ `& E' B, I9 V& ^
var itemFrames = page.getElementsByTagName("frame");& D1 l, `3 q; U6 T% p
var itemiFrames = page.getElementsByTagName("iframe"); y" p, G" [+ p
- D% C% s% S: c1 O, X2 S" p& | N1 f$ H var frame, iframe; r5 w, @) O# _1 s9 B! }
if (itemFrames.length > 0)1 ` U5 Y0 J0 X& Q& M
{1 W' A7 E/ F# b; P& t' h
for (var i = 0 ; i< itemFrames.length ; i++) * p* H7 W( t1 S7 J9 T
{6 m% A6 h4 p+ C6 G' [! o
frame = itemFrames.contentDocument;0 m; w( f! q7 p1 T) {8 g6 q
this.RemoveHide(frame,objname);
2 N5 ^2 A5 u& u0 X' f }
. O" ^/ E5 V7 ~1 U& R" p | }
* i( p T, S" C0 V8 m0 v! A if (itemiFrames.length > 0)/ x) x# B# r, M" y: w5 Q5 j. b
{
7 ^; G' u$ m2 c for (var i = 0 ; i < itemiFrames.length ; i++) 1 t1 V: ]- M# {1 j. O6 e i
{
2 ~# ^# |+ ~6 s! |+ l iframe = itemiFrames.contentDocument;
) ]( Z _6 }) f+ _% b this.RemoveHide(iframe,objname);
; H: d0 _- E/ k; W. H+ X* V }
' \; v5 y5 T* ], {0 U3 ?& h! W }- t# @4 ]' c. c3 O3 |+ B
}' A9 o j6 u& N5 [ g
catch(e)# f' I+ y% Q) m: U
{
) r0 {4 {$ d) g" x; Z if(debug)
7 d; c6 l0 @# k( e {+ x/ j: n0 T) [! {& T4 g0 f Q" T4 B
alert(e.message);3 B# `! p1 G! j, n6 |; R" M
}
% G p0 d. `3 Y$ \; W }
& X% _3 E, i: d/ Z3 M! e* ? }
' S6 v$ I, [) G9 k4 i5 e$ C
$ p5 R s1 m$ c) t7 o}1 `# H8 U. p' B0 o* \, u0 O+ e, N/ N
; V; k) x. z+ Q7 [+ y
function getRGB(colorString)
6 Z, A& `$ s. ]4 j{' j) T( V1 H( U$ i
var RGB = new Array;
. ?# ~$ R5 V* V9 `0 B k var tempSting=colorString.substring(4,colorString.length-1);- T4 z- D: x' h$ a
var tempArray=tempSting.split(",");; N' D: \$ U* o( J& p
6 v) |1 `% X+ i4 z9 e9 a) D E5 w RGB[0]=parseInt(tempArray[0]);9 h6 X( X6 M! \/ q* R
RGB[1]=parseInt(tempArray[1]);
9 d5 f- _: y1 L+ q RGB[2]=parseInt(tempArray[2]);
6 t) R+ c) I. B2 f 3 C$ R- q' o |
return RGB;7 a5 p q2 ~+ [4 w
}& q- r* G& W& H$ [) p: B8 j
function keys(evt)
2 m p4 g; W2 j" ^1 e# p4 e { 5 S4 k L! `. O; F1 ?
if(evt.ctrlKey && evt.keyCode=="81")
4 p; n* {# ]% @( ]# \ { . o. L5 q5 k2 L6 @% }
CleanHideObj.on(0,1);
) l# h8 x* ]+ {9 m2 B1 e* ~0 L& n alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");
/ z7 Q, V: V b0 W C
$ e( _4 u, a; x) `0 ~0 d( y; d } & T5 q! ?' \8 ]% a: I
}
/ v+ l( c7 Q, x5 Vdocument.addEventListener('keydown', keys, false);
( Z0 f; S8 l. p% W' XGM_registerMenuCommand ('Clean Hide',$ ]' u9 t) k B" y! e$ U& u
function(e){2 ^7 @/ r( I: I' m, a/ l
CleanHideObj.on(0,1) I2 u/ B3 G/ m' ^8 v
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");
3 g# T6 [$ t' ?. z/ K' Q9 _});, e' _/ w6 P$ \9 V+ w; F+ h6 e
|
评分
-
查看全部评分
|