|
|
发表于 2013-4-7 23:47:38
|
显示全部楼层
本帖最后由 chenmeiyuan8 于 2013-4-8 00:01 编辑 & ~1 t7 M- }' t3 g# a+ k* a' _
+ @2 @$ L3 j) E+ o# n/ N8 q& W
火狐插件,用猴子& n( b) n, ~4 S# A g0 G0 H
# d, U% V$ O% U4 Q
var debug=false; 7 S; w% R) P& j3 W8 _
var CleanHideObj=new CleanHideClass();. {3 g1 r: R3 y) q, E! v3 s
6 x, t3 B) g6 V- J) W" U% T( q
function CleanHideClass()
# x8 @5 N/ a: ?) G{
$ @' {! D5 a: E0 Q$ q& h' p
: a P! f9 U$ n- Q# H: B2 o' B this.on=function(id,bMZ)
+ V: b0 F5 R* d* { {8 R4 d) u9 _2 K9 |6 i) U
4 W$ ^- N$ {$ u
if(id == 0)
: ?8 J& u4 s: f* F [ o {$ O; f# K6 d3 j3 g" q/ V: c
var page=/* document.getElementById("content").contentDocument */document; 4 A; X& A- f+ H( ~& B7 R
this.RemoveHide(page,"span");" n3 ^2 b! m& P) k9 [! b: s
this.RemoveHide(page,"font");: Y) y% {, n; m& Y6 O- A# H; t8 O
this.RemoveHide(page,"div");9 w3 m9 v1 K' f& j# \
this.RemoveHide(page,"p");$ A7 [$ ]! m' C$ T, ^. W
: ^! n ]( ]9 O
}$ [4 ~ w1 P5 {: g9 J( I
( H' z0 g% y, s }+ ]0 H9 s, \: Y( K' s! l5 }0 d
this.getobjstyle=function(node,prop) ~" @* K, @% ~
{
3 ? K @$ `. Y y( _ try
9 l* O+ \1 D7 ]4 R1 J {
; H% g* M1 B, ^& W- _ return node.ownerDocument.defaultView.getComputedStyle(node, "").getPropertyValue(prop);9 `+ k7 E9 e7 s; |
}
. `: b" R% y" O; k catch(e)3 f2 s* m9 Y6 U) {% x$ m' o
{
1 z5 j+ V! ^) Z+ L b if(debug)
% M2 k$ G$ V4 E/ C {
5 t% o. ]" t$ O6 {% B" H alert(e.message);
( @6 Z2 @1 J( ?# k- ~. V) _) g }
3 h/ \' n L2 L) w5 X $ Q/ k; n) M, O; [) b
return "200";0 d9 J2 ?2 N9 B
}
: v9 T2 a) ]/ A' }7 Q2 p }
; t) M; p' p' H) v/ [ 4 c* q& O4 l4 g* P3 }
this.RemoveHide=function(page,objname)2 |8 O0 i" b0 {, n# W9 h+ |
{8 s6 Q, K: f. V7 \
try
4 D8 p; a' h: M7 z" { {
* D( V, T! E% W8 D: d0 y var minValue=15;
5 n; c; i; y) H3 t' x7 D var objs=page.getElementsByTagName(objname);
2 C* {# S8 z2 k4 q& i( i7 P9 F$ y; b1 q8 t
if(objs.length == 0)
% Y u* w- m$ i; k) h0 |" u {
x0 O+ D& {& [, X3 F if(debug)) n) p7 _' C' i X/ ^
{4 y# V3 k- Z5 ?, m
alert("no object found!:"+objname);- k9 F9 l' Q$ R% x- t( b) c+ r
}
0 y* {* B/ M! z# W Z }
7 O6 C( y! \: Z5 p else+ p4 L& m( X: n4 o
{
7 `& p# e2 c0 g. C, j: I ; p5 Y8 u- x; K% ^$ u
for(var i=objs.length-1;i>=0;i--)
4 u7 I( Y1 M1 H" D+ I @ {
" H/ W* S: S" a: w) ~ var node=objs.item(i); $ P r s! Y: _- g
( i1 S, _5 j& A" d+ H; x * t" z3 s/ a3 k5 y! j
if(this.getobjstyle(node,"display") == "none" ||
5 Q" y* O9 t! R' t$ G* o6 |5 P this.getobjstyle(node,"visibility") =="hidden" ||9 |2 d2 y' D0 Q& a% I' T" r( x) i
parseInt(this.getobjstyle(node,"font-size")) == 0)
" f/ v: D7 I# b {! I( C J, Y; o2 J
if(debug)+ t+ J9 A3 r i$ N
{" u# T( Z2 C) e
alert("remove invisiable!");, `2 h0 k. P6 V* f7 ^) J$ J& l; e# f
}( ^# _/ i: p5 E$ p
node.parentNode.removeChild(node);
9 w9 \/ [) M7 A- k7 B- R) O1 O
! R; J9 ^( Y) p9 ? }
* _ |, K6 y& j' u& r1 y2 Q, h! q) ` else ) H( z* g1 I: L- y! b' Z' ]
{& G3 G# a- e, j" t2 H, E3 D* K7 \
if(node.parentNode)
# }6 Y- ~: z) ^! } {. H& W- g& {9 I& b! y
var orgNode=node;& k" k# Y8 q5 u3 _, n4 B
var orgColor=this.getobjstyle(orgNode,"color")
6 Z5 s3 X. V x( C, X. H! H3 d var orgRGB=getRGB(orgColor); : r. w5 ?& T! v
7 ?" r8 i; e+ c: e: _ L var parentNode=node.parentNode- S: L7 d. D3 n9 i w5 D; i
var parentBgColor=this.getobjstyle(parentNode,"background-color");
5 Y3 |( w! W3 D+ X3 M( q 1 v7 a* ~3 A* S' H0 \( G0 O
var isLast=false;
- F9 t5 b9 e. w8 @4 _ / u. N8 u! ]. r* S# X; Q- d
while(parentBgColor == "transparent") 3 c7 {7 C& I- w+ Z5 R2 v. q
{
: v0 p& m6 k" ]+ U% l' h
3 Z5 d* C2 d$ r4 u+ F: p$ l4 V 2 v. s1 H2 p( k) j8 x2 [0 C, C
if(parentNode.parentNode == null)
\) q* A/ B8 C( f& O' M) y {
" }. P( p) w7 O* f, s; C5 G, ? isLast=true;5 H, y: T6 E' n' f: [2 o8 Q6 b3 ?9 M
break;
! v& H! s- u* r* N9 l: Z6 q- X; } }
$ x, _ [; j) k8 r parentNode=parentNode.parentNode;( N& @0 v* X9 \. g' w
parentBgColor=this.getobjstyle(parentNode,"background-color");
7 e2 C9 Y3 H1 k# h1 Q
m6 b. J, E' f+ y if(parentBgColor != "transparent")
. I4 ^2 S$ |/ O4 f {( ~( k9 y) @1 T9 S* }) ]
break;9 W! c1 v- D4 [, K
}
" N! i$ d/ c i* `) ]% A }5 M9 U9 l; m7 f. s' `6 L$ L
if(isLast)
# Y+ v+ c( n; d0 g8 l6 p {
9 H0 K. ?# `5 `1 ?& m if(debug)8 Q7 J$ N8 B: Y0 e6 M' y; |
{
) m6 |# `9 N3 K( `' D! L alert("last!!");
! v! G5 h" \* L" I; |1 ~) t }
4 e1 u1 i' a6 S if((Math.abs(orgRGB[0]-255)<=minValue)&&(Math.abs(orgRGB[1]-255)<=minValue)&&(Math.abs(orgRGB[2]-255)<=minValue))2 v l* B B5 p: _% C* M
{; J& @4 ~3 R; s% C6 n
orgNode.parentNode.removeChild(orgNode);
; b$ }2 Z" j7 W, L2 \& L }
+ n4 ?7 J# e! i }
' S. x6 G* X' o) e" s' I5 C+ ` else( `9 T% h4 a! T; F' z
{
. [, l1 k+ v. o& v if(debug)
& T2 k9 r1 Q* C7 ]5 J+ g {
5 |8 h( x& D& v3 G: I( T! N alert("compare color and parent bgcolor!");( n1 U! u: `6 u9 [* [% y# X( K2 `
}
# z7 ^3 W6 N0 l parentBgRGB=getRGB(parentBgColor);
) w) g8 i& R" L; K2 l if((Math.abs(orgRGB[0]-parentBgRGB[0])<=minValue)&&(Math.abs(orgRGB[1]-parentBgRGB[1])<=minValue)&&(Math.abs(orgRGB[2]-parentBgRGB[2])<=minValue))
- X! C5 Q3 C: q7 {$ q5 v- D {
/ Y- ~' d: K2 O9 L' N6 ~6 _ orgNode.parentNode.removeChild(orgNode); " r' n; ~2 d) n$ O' d2 H
}
1 h% e1 a% z( n ^) ~: r }
& B' J, A" X" I. \ }/ p& n$ M9 `) i: I9 V/ u. \3 g
}$ {, t* \0 f! C
}
4 L9 d3 B) C5 r1 Y$ W7 o }' B8 U, L- i1 N1 m: I" u3 t, K
4 p5 z8 t/ i; H. |
7 C8 _2 s& [! D% a* |2 Q# T# i2 Z var itemFrames = page.getElementsByTagName("frame");& }/ {# N3 }# y4 R
var itemiFrames = page.getElementsByTagName("iframe");
; Y5 r8 L5 d9 n+ J- y5 l# n
6 I+ I" W( `: g- {) h var frame, iframe;1 B' m' T" s! C0 U7 `1 K$ E; [
if (itemFrames.length > 0)
: |4 W; I3 X: u8 D { V! j1 J. r* ^* K3 B
for (var i = 0 ; i< itemFrames.length ; i++) 4 W! i h! k/ ~( S7 Q3 j0 j/ I5 T8 t
{" Q; f$ b$ W1 v% m6 E+ U
frame = itemFrames.contentDocument;
" ~1 y# C" j: \6 B2 c this.RemoveHide(frame,objname);
' k: z; \: p6 h g9 ~ }) b, n) U, W# ?1 Q* O( _
}
. l; `# n- ^7 f! u if (itemiFrames.length > 0). F* [" o/ B5 w8 I& F
{# E( N$ i9 L6 d, e: ^3 p
for (var i = 0 ; i < itemiFrames.length ; i++)
# a8 U4 @. A1 l1 b% D, t) @! u* x {
8 z9 R& s! O9 m1 L$ F& @ iframe = itemiFrames.contentDocument;
+ |0 i- j9 D6 `: D5 k4 _ this.RemoveHide(iframe,objname); : _+ z- D2 ?5 m0 g
}
+ a+ d' a! E; \% T+ a }
& E: v% ?6 K: w' Q3 d }
6 l( J; S; U" k5 {8 l, l catch(e)
3 M p8 I$ r+ I e. o {
+ w$ U* b5 {1 K3 H1 Q4 `, s- E if(debug)
* N( \2 U R P {4 d v4 O, y7 q
alert(e.message);
5 N& I) Q( i. J1 d- X }8 a, b1 T7 n L
}
* p' U1 V8 _- p4 ]6 ]4 i/ ]2 J }2 P3 m; B" u7 |5 L
9 h3 q Z U3 ]/ x: H
}
1 H4 _3 B! m4 X/ E8 R8 l% r; W( W: h C
function getRGB(colorString): S" R; [4 W7 @+ R2 h( _( o
{4 {& U( e+ [- p; r6 _
var RGB = new Array;
+ q+ ^ s- }& x8 n' W4 a! Q; ? var tempSting=colorString.substring(4,colorString.length-1);
1 ?* O T3 _8 y0 ~! r3 m var tempArray=tempSting.split(",");
- }6 F$ j1 D/ B+ @
7 @- D. ]1 c( I& {9 Y( o RGB[0]=parseInt(tempArray[0]);
6 m% d) G) ?$ ~1 l RGB[1]=parseInt(tempArray[1]);# x3 d/ r: S4 x2 m- M0 ]( f
RGB[2]=parseInt(tempArray[2]);
1 [1 }% V. Q- {
?* b+ I/ V& p. B; m2 K% Z" M return RGB;
! l0 R' a; ?6 I. P, r9 M}
. B! ^% }/ c" e9 Zfunction keys(evt)
( | Y! W" F; Q {
# `: Z+ D, K! c2 W if(evt.ctrlKey && evt.keyCode=="81") ( w# r( n% K+ Y& v
{
& O! |1 C9 Y! P7 ?* A" p4 x/ l# x5 w CleanHideObj.on(0,1);
% F& @( h5 N* ` alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");
. ~ n$ s* Y& M- O7 N 0 m! e+ k, |$ L. M T5 _$ f5 J
} ! f( ^) t- f/ Z4 z. B0 \
}
' {% M2 S( [4 M! w- gdocument.addEventListener('keydown', keys, false); + ]' g x$ S3 L
GM_registerMenuCommand ('Clean Hide',
9 H. J& `% a) ?4 Tfunction(e){
, f. V" F& j5 G2 i6 ECleanHideObj.on(0,1)
0 r1 E1 V9 l* ralert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");9 @5 c; S% `$ c9 ^ j
});
5 k: j* D6 Y) Z& |% c5 z |
评分
-
查看全部评分
|