|
|
发表于 2013-4-7 23:47:38
|
显示全部楼层
本帖最后由 chenmeiyuan8 于 2013-4-8 00:01 编辑
* {* ]! W# q$ \ a$ }& w' G
8 ^' N1 K1 @4 g2 s' V火狐插件,用猴子9 g: M: b- E* Q/ u6 k8 R% y
" u3 P( ]/ e9 ~4 Y2 z# |var debug=false;
9 e2 E* Z; F/ K( J4 w$ X! Nvar CleanHideObj=new CleanHideClass();
2 q, V( m4 [" k/ h! P0 c' W; z* `7 S; C, r, V* G
function CleanHideClass()
- o; w( B+ ?+ S9 L{
) V8 ?( N; E6 o- Y, |" k, ] 8 k& q2 @" T9 v$ K4 W# F0 g9 X' a
this.on=function(id,bMZ)$ K6 t: b4 f- l H
{
* M m4 r$ {. |' B* j: l & B/ ^6 Q1 D, J- h, D! H3 M. w
if(id == 0)- [9 F7 b3 h$ [* ?2 |+ c. M8 ^5 q
{
' `3 v6 O& L4 P7 [ \0 m var page=/* document.getElementById("content").contentDocument */document;
/ X7 r. U( ]: `9 ~, H: L this.RemoveHide(page,"span");
# q9 c+ S. a' H f( l this.RemoveHide(page,"font");4 v+ w, E- |, E: A1 l0 s
this.RemoveHide(page,"div");+ A* D) H& B% `
this.RemoveHide(page,"p");5 T5 R0 u' r. E) N' q
3 |8 Y! j' s3 T5 R: C8 c }
) l8 Y5 g1 a+ j% R9 v3 _ + B/ }0 J* h0 F- c8 ^8 S. M# w
}" {- v5 Y7 ~5 H" F, \! h- m
this.getobjstyle=function(node,prop)! r$ y1 S/ F- I# N W6 l# A* q
{
3 J, m/ P$ R- B7 N. e* l2 `( k$ t try2 e k% h) b9 g. i2 U' H, s1 {
{* E7 v! S( g8 c6 U; R
return node.ownerDocument.defaultView.getComputedStyle(node, "").getPropertyValue(prop);
4 r" @! ?3 @6 v, F% b0 { }
6 f2 T6 ?3 D4 `6 n: o# I4 N catch(e)7 H% b( W1 a" o6 v+ P' N' A# U$ ~
{
' ^- F) a" Y" y# I9 z$ U7 m$ n if(debug)
# h, t' Q) e+ ?0 u {1 F' T3 k# Q3 M
alert(e.message);
9 \1 T* E& ]. y/ F9 O }
. _5 b- I6 @! f u% n' y' l
2 O1 }' t/ }, p1 A9 [$ M return "200";
2 g9 C: H4 N# {8 z }" z5 E( R. i$ @& @4 R) u
}' x% L: T" \# K" Z2 H9 ~1 K: h0 i
2 I" n% p+ S' ]) y; |9 ~$ u$ B
this.RemoveHide=function(page,objname)
1 o- }9 B( }9 Q {( q. W' J3 J( \# Y3 `; N; K
try- i) |: ^9 j1 f- o
{
f" o/ S- k, j- W" h! M! R4 T var minValue=15;0 Q B! t/ A5 `7 K+ i) b9 j" `% Y
var objs=page.getElementsByTagName(objname); ! {( X3 a, J2 S! s" b
& J# j6 c# T6 J, t- n if(objs.length == 0)
6 ?* I: ]; V h" m( t {- G! \) l; V" a9 c& W, `- I
if(debug)
- Q, [" `( ?6 @9 y$ M0 n' L {
9 M+ v; {0 ^* F$ ?* b alert("no object found!:"+objname);* V/ y% d' e, o
}
1 h {# o6 E! f- s3 T* |% ]! P }7 E2 n7 m) a% L" J7 c* N
else- c( m( h5 ?$ \+ k; I. L+ z
{
% b9 V0 I0 T6 w0 b 9 p, n4 R! F! Z, F$ ]
for(var i=objs.length-1;i>=0;i--)
2 Z3 Y3 Y# o$ o {
$ l& l4 J. U6 Z: S/ c) q5 I var node=objs.item(i); 8 K( M0 o/ k$ }7 ~$ b* m' c
7 L8 f- b4 \) v% s Y" W
( r* _' R, @* S1 r* ]; ]7 e3 w _ if(this.getobjstyle(node,"display") == "none" ||% P$ K2 c8 r5 d$ A% Z) ]; ], O0 O9 q+ J
this.getobjstyle(node,"visibility") =="hidden" ||4 A! T4 ~7 d8 B' k C- G ]) c2 j
parseInt(this.getobjstyle(node,"font-size")) == 0) ' m- {0 s" s, d9 D
{
9 M9 D! e, `7 x* E7 T5 B if(debug)
3 S9 m! E9 F3 _7 K {
2 m$ Q1 K; L0 E. r# Y alert("remove invisiable!");) t0 `- T. T- R6 f! g
}
l) V) ?! w F, u- A0 c7 q* h) S node.parentNode.removeChild(node);# g5 l3 R a s' N7 W/ n; u
& C+ v* d) `+ H C; I& e }7 D; O+ K# t6 I2 t" U( o
else - E2 k% q8 Z4 B9 { H- P( J/ o
{
+ a0 s4 i- k6 Y7 B% S if(node.parentNode) : @/ G2 ]7 E! z/ z0 S7 o4 @) n' L
{
/ n+ t2 }4 ?2 G" w/ s9 n var orgNode=node;
0 A- k, A2 Y! b var orgColor=this.getobjstyle(orgNode,"color")
; n) T7 g7 f( r) |( w" { var orgRGB=getRGB(orgColor);
9 t" X) E& @, s( d9 t
! {3 I3 r! d) i/ ] var parentNode=node.parentNode/ c8 z1 n7 j" a% p; ?
var parentBgColor=this.getobjstyle(parentNode,"background-color");
3 W& w: d( p9 i l8 P, ? 3 a ]# l+ @6 Q8 P' y
var isLast=false;2 B9 k O6 `4 c! \% M% D% ]
, c3 J0 p2 P) c* N while(parentBgColor == "transparent") ! l" K6 A9 [) W: _" Z$ U8 L6 G
{) u# s% E7 J. F: [( x @3 m
( V' T+ s" x: Q- c3 n
: M, t, V H6 Q/ k) Q1 w if(parentNode.parentNode == null)! R! o. q$ T7 |; K& T( _
{
% f4 r- G2 ~; o# t isLast=true;
1 G+ X) V2 h# t! l+ B7 P1 j7 A break;
6 s" ]: n6 V4 ~6 a/ M& v: W: V* q }3 m& ?# H) N5 K
parentNode=parentNode.parentNode;: n2 ^! R; F T4 T% N2 `
parentBgColor=this.getobjstyle(parentNode,"background-color");
0 S8 ~+ r, A" |! \# `& a5 D# h8 s
if(parentBgColor != "transparent")
. b' Q- R% S& T4 P2 W! o. @ {
/ n \: s. J/ q C+ i& I break;3 j5 ^ j: f3 d
}" U4 M% P) c6 S9 v9 f0 o
}
# P6 [ l/ i6 B& _ if(isLast) 4 b( U& @; U/ r: @4 l3 d( K E
{
9 b: ?* y: z, ` if(debug)% F1 L! z% }3 N) t5 A5 D
{' a1 X( t4 g7 z& E" l# F9 d, [5 ?
alert("last!!"); C$ P6 ^/ n7 C0 j- \' y: G5 z
}) s- R" w: F% w2 x( s# [
if((Math.abs(orgRGB[0]-255)<=minValue)&&(Math.abs(orgRGB[1]-255)<=minValue)&&(Math.abs(orgRGB[2]-255)<=minValue))2 P# ?/ l9 a2 V- A- ]
{
( v+ h4 Y# v4 t" g) j orgNode.parentNode.removeChild(orgNode); }$ W+ U) P3 W% N* m
}" a& \6 k: i' j, Y' C- e8 ~+ n; A7 y
}
% y: o" S5 y6 J else
, H. K: v! c+ O( q6 h1 k {2 e/ f" g% A; ]/ G5 p; T
if(debug), I1 d0 U8 J2 H/ f! l& }2 Z
{
4 q% t( L# M- A% e) W' x alert("compare color and parent bgcolor!");5 ?! n1 q" [2 s' |5 w
}
0 l7 f2 Q5 g J1 P5 ]3 E b. ^ parentBgRGB=getRGB(parentBgColor);* i6 D B/ R" v8 l8 O# X
if((Math.abs(orgRGB[0]-parentBgRGB[0])<=minValue)&&(Math.abs(orgRGB[1]-parentBgRGB[1])<=minValue)&&(Math.abs(orgRGB[2]-parentBgRGB[2])<=minValue))
+ B+ V4 _0 G. L; R. X4 Q6 b {
6 u6 } x" Y u' k5 l9 A# F orgNode.parentNode.removeChild(orgNode);
# S8 r1 Y5 O/ p$ ~ }
! v' g8 ~; k G, H9 _7 K/ o }
( q# {$ T3 E8 p$ e6 n }
/ s8 K! P5 ]4 _7 f }
7 `$ @3 C- \8 P1 V! [0 m5 T }
/ y7 H, Q, {* ~, R5 w( @" v }$ e( M2 E# J7 c
/ l" `; Y) x" c W% L Q
+ Y% S' f) X1 ^% [$ `5 ^ var itemFrames = page.getElementsByTagName("frame");9 @7 ?: V& {: z; m; u( x
var itemiFrames = page.getElementsByTagName("iframe");4 E$ y) m7 [% p
# ]4 T) X# ?2 Y8 i9 _ var frame, iframe;0 N+ ?8 y t- }$ L* Z+ H
if (itemFrames.length > 0)5 D% d y/ Z% k) O! @# y0 `
{( L0 u4 Z M7 G m5 {( |' o( J
for (var i = 0 ; i< itemFrames.length ; i++) / U7 W& v% \5 X6 C
{
) n- b. `7 d+ ^; `/ c+ @: j frame = itemFrames.contentDocument;/ [4 V% D9 e' l' Q- k' G
this.RemoveHide(frame,objname);
, n5 E9 U$ |) q }
3 P4 J9 M, c% U3 } }
3 }5 p- z( ?. n( u) j x if (itemiFrames.length > 0)
/ ]) e4 |8 O1 a& n3 W- |9 k {
& i3 W0 d) B I; h4 F for (var i = 0 ; i < itemiFrames.length ; i++)
`6 U' `: R7 _/ r# L+ h& c {+ v# j3 N. _# t/ F% Q
iframe = itemiFrames.contentDocument;
7 K3 o- `8 J! p, U, o6 ^5 W this.RemoveHide(iframe,objname); ' y# g8 @ W* I: f ^ b
}
+ o. f1 r! {+ s; z& |. k4 |' z3 ~ }4 v) W# H+ {4 h8 Y2 E0 `
}9 l; L! s7 P. W* H8 E5 G
catch(e)" Y8 y) y4 y- x! b1 ^+ c
{
Z' J! W# c3 c6 ~* H1 ] if(debug)
) Q+ g* J4 ^ @5 _0 v" k* a/ g n Y: l+ \ {
0 W2 S$ Y4 f# n alert(e.message);
1 H) ~8 N) y4 B; }% o4 Q- t }3 m; ?; L: `/ p5 f9 Y
}
6 E# `8 X5 ^! q, T1 q, L }# Y7 R1 Y! q0 b8 h9 E6 u
2 c" B7 X i) c. E- I$ t
}4 e$ i' a1 `& m
, ^5 t9 a p* q3 F: _) ?
function getRGB(colorString)
! B* n# ~/ @7 ?5 @5 ~% {- I- f{6 K1 y5 Z# P7 X& x- G) T, ?
var RGB = new Array;1 D% s$ Q( G- b, F8 a
var tempSting=colorString.substring(4,colorString.length-1);
% l9 F0 Z5 v7 ^ X var tempArray=tempSting.split(",");
$ U' q& R5 P4 b7 T* t+ V6 b3 ^" d' R8 ?: p. T) }& X
RGB[0]=parseInt(tempArray[0]);6 \: ]6 v/ O3 a* }! h( ~
RGB[1]=parseInt(tempArray[1]);
3 ?2 T7 k/ O5 W' H! W" d RGB[2]=parseInt(tempArray[2]);% y: I+ s) Z5 |- F v4 a
3 t. x/ p: D3 _8 k% S s2 x0 o
return RGB;) [/ ~, p, q6 Z& {# z+ u, W% B% Y8 E
}
$ `& M* S% A5 M! h7 Ifunction keys(evt)
% [" }- k& H( v- ?) r {
) u2 I9 k: U: t" a$ ?; u: M if(evt.ctrlKey && evt.keyCode=="81") ! |5 O/ l4 {7 @4 D) T4 B* A8 ]7 h
{
% @% e3 d* G% _% v# W6 l CleanHideObj.on(0,1);' {* T% ~- X3 L7 `2 u+ _% N& g
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q"); & m/ `8 s0 B0 a4 |
( [$ R: w+ |6 m/ K: L& l }
2 A5 q3 k; i `5 _/ G; y7 g) W } + c ^' S# C- U6 H% V# l. N
document.addEventListener('keydown', keys, false); $ o0 B9 p" F; e" {( M* X
GM_registerMenuCommand ('Clean Hide',
5 P/ i7 f/ [% J9 |/ Ifunction(e){! A; ]: m: S. b3 m% C& e
CleanHideObj.on(0,1)2 ^5 X5 }+ r- ]
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");
! Z* x& V! u) i& x4 C, M( \});
. U" g. w# u, ^9 k" w |
评分
-
查看全部评分
|