|
|
发表于 2013-4-7 23:47:38
|
显示全部楼层
本帖最后由 chenmeiyuan8 于 2013-4-8 00:01 编辑
: V6 h1 o/ M( g3 t4 {/ u' l' k, x! f f+ I! w2 o5 A
火狐插件,用猴子4 d* r R& i5 ?2 i9 ]# o
/ B5 w& W7 D0 {5 P2 ~" E* m6 E
var debug=false;
* Y4 @$ I3 x, j+ gvar CleanHideObj=new CleanHideClass();9 n/ ` j! x, ]2 x) t) _; P, {
6 M% m" b6 A! j8 vfunction CleanHideClass() ' h" F. C# w$ h4 D/ @7 n, y
{
) t0 E7 J$ i' V9 B% p
- P' V6 n* w- }' k% P$ I# O this.on=function(id,bMZ)# m5 A1 z$ h( U3 W
{3 R) e* Q& t2 J# a
$ W1 R$ f6 K c, Z3 t7 |8 L
if(id == 0)
3 a l* ^5 K! K6 W* { {. t) S- [3 O e: L3 o
var page=/* document.getElementById("content").contentDocument */document;
1 s# z, n7 D" \1 r this.RemoveHide(page,"span");
' j: O$ T; e$ S: e& w this.RemoveHide(page,"font");
' t2 \' X: G0 C- O5 {1 y* C. I this.RemoveHide(page,"div");. Q$ z4 O4 L5 P% j
this.RemoveHide(page,"p");- n6 b. I: J/ s8 S7 f4 N
& z1 l! ]* [8 l, s. b3 z" u
}* n8 W' K# s4 [. m% W
' L- d5 A0 r- ~. n }
. o, K' V7 L0 b% F# v! C3 W this.getobjstyle=function(node,prop)4 V2 o2 A& }, p0 {5 Y
{
- x, S1 a% A' r" n. l( _9 _ try
/ i) [4 z' M# W0 O7 H4 E( i1 A0 f {
( ], L( `4 z6 ~. e6 k* l- J return node.ownerDocument.defaultView.getComputedStyle(node, "").getPropertyValue(prop);- |3 h: `- }/ a8 k/ B# q
}
% c8 k* v* W, G- v catch(e)
: c; J: O4 b/ w* n4 R6 x, K9 l9 h {
, V4 w" n5 U" |+ q if(debug)
8 E1 n% W# x$ d {
! @" u1 ~1 E3 X) _- Y! ^ alert(e.message);
4 ?- q) U9 j' x( W7 `7 g" e& g5 U }
2 J8 b9 h* P1 d1 Z% M+ z5 Z( G
1 s6 b* n1 ?) _* h$ d return "200";
% @0 B( C: h6 i% t/ J( R4 S }3 Z( L, {) l2 p) k2 J R
}9 R# s2 Z; l% v0 @
0 K9 F& h+ E% ?) W( e
this.RemoveHide=function(page,objname)# Z: F3 c- E, `' Y3 O# X
{2 [5 O2 l H' V4 C
try
" J0 y" {) V9 W0 f { q5 S, C" v- B0 i
var minValue=15;
8 G. n- G6 g, r4 ~6 l* b& s8 A4 I3 L var objs=page.getElementsByTagName(objname); 5 ~, g8 ?! S s7 i$ Z5 D
2 }1 Y1 u7 Z3 X6 U! L, p- e& I if(objs.length == 0) $ l; z, r- A; E& h, Y" t
{" y) w& u" b9 ^. F7 h5 U
if(debug)
% D% F0 H( w! Q. _# Q {0 R. H! Y& M& e3 o4 r, o
alert("no object found!:"+objname);
' g0 W$ r$ F% G. l8 f9 l! K1 M }
" z, l( f6 c5 ~4 v! L% u5 r }& r! Q" k% p0 s
else5 i- N' Q. `5 r' A1 ^
{8 a" v$ V/ O) y3 L
. N- }) \* B) @6 B& N- S2 l6 K for(var i=objs.length-1;i>=0;i--) 7 v3 `9 Z, H" c* h( N4 ?$ ] h/ y
{
2 o. y* n3 a+ s- u& m var node=objs.item(i); 4 l8 K9 _0 V* X9 r
( {# h( S# ^; X& x" n/ d1 ?5 X* y
& Z, k- R4 H2 q8 t: ?/ ^. D3 Q if(this.getobjstyle(node,"display") == "none" ||
6 Y9 T3 k1 Z, A( t: t* w this.getobjstyle(node,"visibility") =="hidden" ||
% ^/ `, x+ p, P. M* n parseInt(this.getobjstyle(node,"font-size")) == 0)
/ ^& d/ c3 d0 k$ O. p9 B. {/ P {
: W: n$ a2 B3 h4 F- p6 |! x# v if(debug)
* C4 l6 \% t3 w( s6 D3 w {0 t; O t* ^: j+ g- @8 j( n
alert("remove invisiable!");
+ }& U [) F" D( a, L8 \ }3 K. X# S/ F2 g/ j! l# H9 \5 ^+ W( Q
node.parentNode.removeChild(node);
8 z$ l8 P$ b) ~* ]8 V8 a . C$ j+ ^ e. G+ b, _0 N
}% e+ i- K6 z5 C$ {" l3 O; O4 a
else
+ S* c$ g' o6 r% P {
- [: N6 {- R% E if(node.parentNode) 0 C2 E$ b/ L- P6 G9 {+ W. H4 G
{
' `; \5 u! n" v* _ var orgNode=node;
6 P. ]4 | e# i+ ~1 r9 ]9 d var orgColor=this.getobjstyle(orgNode,"color")
0 l1 |7 c, h% b. p2 \" e, y var orgRGB=getRGB(orgColor);
4 P! K7 E4 G) s- X 0 ?+ r& ?: S$ x4 T
var parentNode=node.parentNode
! r, Q5 I |; b( _" y. T" E# L var parentBgColor=this.getobjstyle(parentNode,"background-color");
2 ^6 ^) s9 p, O, R: t 1 \0 D& j" {2 @/ U4 }
var isLast=false;
6 m1 @) X6 K4 G/ c K 1 T. O6 ?6 h. ^3 s6 {1 o; U
while(parentBgColor == "transparent")
% L2 L" X, L+ d8 X5 M! i {( r& |; o+ E/ G
6 W- n" Q: A" |% Z
; X" U! ~0 o3 m' O+ r if(parentNode.parentNode == null)
7 S8 t9 J% e5 B. ^' m/ G {
1 p+ N7 N; K+ ]7 X3 i; _ [ isLast=true;9 t) S# p- _ p5 g
break;) K: m9 l9 K* {' K$ O
}2 D3 x( K& B* i! e) i0 \) `
parentNode=parentNode.parentNode;
- o4 N0 F! U0 t6 ~' u/ ^5 K% O/ T z parentBgColor=this.getobjstyle(parentNode,"background-color");
, M( n+ M- p+ r) z8 F8 Z
( ^5 _! a& q+ Y4 e) a7 p( w0 Y if(parentBgColor != "transparent") 4 |6 B& p# r& n$ q' J
{2 @1 B. O' m3 b' }% Q- U4 Y
break;3 @* L! [& f$ T8 H9 q
}
2 J2 r% U+ F; z8 ?" k+ ]" A! C }9 V, a6 i7 s0 S$ Q. b6 o
if(isLast) ' M t5 r3 ^" G% G* j
{
* f1 O% O' w# Z( ]' V1 K# K if(debug)
1 c+ W8 g+ @1 G% @! z4 a! Z {9 |2 [3 [' X! W T4 Y& T% r: _) G
alert("last!!");
& u% }% z r. {4 o }1 U% o( W- b \9 S
if((Math.abs(orgRGB[0]-255)<=minValue)&&(Math.abs(orgRGB[1]-255)<=minValue)&&(Math.abs(orgRGB[2]-255)<=minValue))+ `) h, J4 B6 x* S Q$ f% y4 X
{
% b% [8 c3 B! [1 F6 }! w/ U/ J orgNode.parentNode.removeChild(orgNode); 5 e9 H' s; b1 }8 }# O
}- m0 S) K# \) \
}
; H! T2 ^/ n% i0 D: q else- p6 E) s% n* M' R
{
! E; w% H4 B" d3 C& W3 Q if(debug)
4 z5 O% T: s9 |! R+ N: S {
0 K* o. n. ?- d alert("compare color and parent bgcolor!");
- d' d" ~+ \# h0 g. E }# I# p- f& V; N+ S# U
parentBgRGB=getRGB(parentBgColor);8 t. @! L' A% G4 T+ }% Z3 ]
if((Math.abs(orgRGB[0]-parentBgRGB[0])<=minValue)&&(Math.abs(orgRGB[1]-parentBgRGB[1])<=minValue)&&(Math.abs(orgRGB[2]-parentBgRGB[2])<=minValue))# x+ P# i6 g; b5 m2 n( i- s- y7 N
{6 e' a- k+ U: T5 C
orgNode.parentNode.removeChild(orgNode); + U$ H3 X p/ b) M2 k- h, Q) Y
}1 G3 p- V5 z; B' O0 W0 H7 s1 X$ l
}
% G7 F2 q7 P: l; ^- a' A }: l1 \2 U4 @: |; Y7 F$ u
}
5 a# Q6 a/ R5 a1 f }7 C, H- V) D Y) i1 m1 R4 H
}
- |6 D2 ^6 m# Z4 _( a) K$ u
z" m& h9 E7 [ 8 I* L$ T+ b# D, _8 Q3 k+ e8 o
var itemFrames = page.getElementsByTagName("frame");
, i0 M# s8 q7 a* H( ^# i5 W var itemiFrames = page.getElementsByTagName("iframe");: l' l9 i: q- u8 V
8 k8 r6 R2 I( C9 J& J! }+ o O var frame, iframe;6 x9 N2 _. w% C# O1 T; ^5 u
if (itemFrames.length > 0)
, K" R3 }4 `! o8 ^$ Z" N {. Z: I: P1 J4 N2 q* b8 ]1 a
for (var i = 0 ; i< itemFrames.length ; i++) ; P8 B. l3 `- h7 P5 k8 ^
{
. o2 G& Q" G- ]$ ~0 J frame = itemFrames.contentDocument;' s4 U* ^( {% r0 `. R
this.RemoveHide(frame,objname); / b/ L2 ~; O+ Q- i
}1 s X h& f1 ]# P0 T; V
}
s( X/ P: z# W: g9 Q if (itemiFrames.length > 0)
# ~$ L/ k7 f+ C3 w3 s1 s4 P {/ j3 p* e8 Y2 ~/ z5 s. ]6 F
for (var i = 0 ; i < itemiFrames.length ; i++) " p3 L# V/ M- q8 j4 F+ R- M
{
4 k) L* X$ p) ~- U+ Z% w0 t" e4 X iframe = itemiFrames.contentDocument;
$ M/ c* n& V. f! U this.RemoveHide(iframe,objname);
+ Y, |/ i/ L% V$ `& Y9 ?1 U0 C }
. L, Q9 e: ?3 L6 ?8 M& X }) s5 F' ]: Y. E5 J9 R) [& i7 z1 E
}
0 I' i) G# ^. L- M& ` catch(e)
6 V7 N1 U1 g# \6 m {
; h; C# A! b: u U if(debug); Q! `1 O# O% x. b, O8 L
{( N- F: w4 v/ p" F; r0 e
alert(e.message);0 t4 | W* ]4 I7 u3 T+ \
}: h& c0 x/ F( b
}- U% k. t& T5 n4 W0 {
}7 g+ r0 y8 \' F: i$ M8 \, M: T, d" A
4 R* J8 t+ C* ]. R6 v `}+ v0 H$ n+ o3 I( b4 A* F
' _2 e6 O) V% ~) j) d
function getRGB(colorString)
: ?; q& {% e" P5 x6 f{# K p& a/ ?+ m. c
var RGB = new Array;
/ N6 ?+ R8 [% C) [6 V var tempSting=colorString.substring(4,colorString.length-1);
9 o0 c0 ^5 \3 ] var tempArray=tempSting.split(",");' a% b) N/ C" Z! b8 w
/ O/ o. |& Q3 c$ Z) ^( B$ A, w
RGB[0]=parseInt(tempArray[0]);
/ e! G6 j o: L( O" f0 f. ~+ m RGB[1]=parseInt(tempArray[1]);
$ I! o/ k6 O1 e, j' i3 G RGB[2]=parseInt(tempArray[2]);. w# V( ]# N& F! M+ i' [
2 i F; p/ f5 G- j
return RGB;
4 p. T/ x- w& \* a. ^; [+ m7 d( z) A}8 Y5 Q) |0 K: \* \2 ^8 W
function keys(evt)
$ B6 A! @1 R9 g9 h1 {& S: f x% q1 w% P6 ` {
. G: ]/ m! d" I- e5 x2 j if(evt.ctrlKey && evt.keyCode=="81") . o( M, o I% a; \' H2 b
{
, c G+ ?: T' x6 B* |; m CleanHideObj.on(0,1);
/ R) `0 l" r" Z& s U3 B4 O7 M alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q"); 4 E% X) N7 H9 m2 W s. F) }5 X/ E: C% b
6 N7 Y2 {, d6 I }
- V) j: i" P+ o4 O. V) O } , E/ {" e; a, G/ q
document.addEventListener('keydown', keys, false); c# l7 p. ^& i
GM_registerMenuCommand ('Clean Hide',
5 D. p" p2 K/ ~0 \+ F! U% F4 \2 D2 afunction(e){" `* g8 ^) O! Q" [' a4 t
CleanHideObj.on(0,1), ^, `% ~6 X/ j' \ B8 c
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");
+ K" a- f' d) R9 p, T});
9 O- }/ S5 ?- ]8 | |
评分
-
查看全部评分
|