|
|
发表于 2013-4-7 23:47:38
|
显示全部楼层
本帖最后由 chenmeiyuan8 于 2013-4-8 00:01 编辑 m3 a0 k. z% y" t i+ l+ q! A. c
8 ~$ G% I3 X5 V
火狐插件,用猴子4 h7 G$ N2 u& [5 |0 q
3 c3 `! w* O9 _var debug=false; - z0 i/ D) r( a- L/ u4 }! Q/ x: W
var CleanHideObj=new CleanHideClass();6 F% ?9 O: p) O- @! f v
) A; C a# D) k# D! `
function CleanHideClass()
2 L+ L; ]) @& D. H7 i4 i{ 9 A7 p/ j; n" w/ K# v
' y! Z. |; B, v* a2 `
this.on=function(id,bMZ)
4 J! Y" x l$ N6 ?6 \ {
, r+ d' n) B/ w% U ~3 S: D6 I7 c. }
if(id == 0)
3 A8 w( [8 ^2 a) W# V* C1 k {1 o9 ^0 b" x* B3 A! c) J% V9 o
var page=/* document.getElementById("content").contentDocument */document; 4 _4 G8 N* c& }4 e. B- k, t
this.RemoveHide(page,"span");
$ F; s2 Q* {+ M7 t( M/ V this.RemoveHide(page,"font");
3 _$ p$ L1 z: C& O' d5 K this.RemoveHide(page,"div");
: s2 X; G. g1 }) i4 Q" k; A; E this.RemoveHide(page,"p");5 {- D1 G- X4 B9 Z! h% k8 H! k) o
& Z& \; Y6 X( S" |" n2 ^
}& ]* `3 w1 C0 y9 K
$ P b. C; l1 d( B8 ^. u
}
3 v6 Z/ D6 _& F+ L3 ?, y this.getobjstyle=function(node,prop)
0 N6 |# k) G( G6 f; a' s6 R, X {& G1 ?0 {% N- {0 m4 `# w$ f. F% P
try9 b5 n1 _/ O- X `3 {; a4 G4 S
{* F- F+ b1 H: I6 `9 ^; G
return node.ownerDocument.defaultView.getComputedStyle(node, "").getPropertyValue(prop);
* w/ {: T! J& l' B3 U }& S& F1 p& p/ u" g, N7 X$ u
catch(e), b3 ^5 i+ d7 q- A% ~
{
; `- \5 }4 H6 T if(debug)
% b: O1 z4 Y* o! C {7 V8 ?& f: W0 y
alert(e.message);# p y7 W) G& J6 t N6 h5 X
}
6 S% R8 d t: H6 T9 a+ E" W
5 E% _# w: Z \8 Z8 K+ F return "200";
, N7 {4 X. s& ?1 A% F( \ }
, M% X+ d/ J6 S- j9 X; g/ D$ z }, z. n& r6 C" ?- `5 \* R
& K+ {; z8 Q3 b3 ^' S* Y! q- _
this.RemoveHide=function(page,objname)
- X/ N3 V: f, ` w* V/ F {
# i/ w2 a) \% q( N( z: X* E. L try
; G, ~3 N, H) H1 K+ d9 m- {4 [ {. N2 `, C, C' H4 y- R) B P
var minValue=15;6 |" h1 K7 d7 |" J; ~ b5 w
var objs=page.getElementsByTagName(objname); 7 V5 v U0 ~6 F* L9 b1 |
& m+ P4 O+ z0 ?) Z, O if(objs.length == 0) . o2 c- l A: N1 m3 c
{
. f" W6 M1 `, ]7 B' V, F: c if(debug)% ^/ Y9 F; [8 f3 v% Y; J
{
) U' M& B& [3 Z8 W9 P) v alert("no object found!:"+objname);
% j# E% ]: Z/ p& t0 A }) l8 z6 f4 B9 k$ m9 d8 g
}: F$ c; A) |; U- s, H. \
else2 |3 @4 {# j9 _0 P+ z( b- N' A/ K
{
. J& G( v: d5 x( k
" M9 V) ?, Y+ l8 { for(var i=objs.length-1;i>=0;i--)
$ ~2 W# `1 f4 ^ {4 p. b. @7 t) |
var node=objs.item(i);
+ ^) b; ~( W8 F0 q- `1 W / }: K1 Y. M1 {& Z6 L6 \ H
! B) D- @. V, a1 B# H( ^/ E if(this.getobjstyle(node,"display") == "none" ||
1 _3 k9 |0 D3 k1 z7 R0 l this.getobjstyle(node,"visibility") =="hidden" ||; ^- z3 G6 l7 E+ w! p
parseInt(this.getobjstyle(node,"font-size")) == 0)
8 z! G/ X( @) ~, L: ?1 l {0 z7 j: Q8 x# d3 w/ k
if(debug)
, M8 T& Y: U5 Y, Q {
( {& w- w; x1 f; d# D7 m alert("remove invisiable!");
1 ~5 V& H1 l; d1 _) \' M }
; b7 N7 |: W* |. D node.parentNode.removeChild(node);
5 F8 `% e/ U# { ! o9 Q( x- B# M3 H) p- M j9 o
} F3 T! \ m4 o! m; Q; _3 F: C4 p
else
9 O- H8 X) M# u2 h {
$ K2 i8 s( l. A3 z) [ if(node.parentNode) 9 X9 a; a$ f. A! u: a! A
{
$ [+ p: C" ~( R7 l/ ]9 u: n var orgNode=node;# |# n- k! ^; M S+ W; F3 ~
var orgColor=this.getobjstyle(orgNode,"color")
6 s; D" [: H! R( G Z4 s var orgRGB=getRGB(orgColor);
1 y0 O' { x, c/ D! H1 }7 ]
: F1 ~/ j) w( l2 G0 l$ K var parentNode=node.parentNode
& g* h" j; F& y" V% T, h var parentBgColor=this.getobjstyle(parentNode,"background-color");
/ R& f' p4 s9 I
& l! ^* C0 Q/ }8 D var isLast=false;8 x- v# e/ [: ]) K' F
1 u1 H' w' \2 g! w5 L7 A1 Q. J
while(parentBgColor == "transparent")
$ ^, D) P v" o, d {# _1 j3 H- k' V" V
% l, _) S0 z- Q* h9 R' B
u9 e6 { M+ n9 K% }* \
if(parentNode.parentNode == null)) _* G' e3 C ^
{
$ J U$ `' [5 h r; c, v) i isLast=true;
( U, s/ i8 \6 @* O5 l6 R break;
+ x* @/ z" b: j5 v, g1 j) n7 s% N }/ `4 T/ N9 {! c( e
parentNode=parentNode.parentNode;, j; j' x* Y. l' F" o, |3 w
parentBgColor=this.getobjstyle(parentNode,"background-color");
; x5 e. S% V0 [' M8 W! _
$ V y! e) C0 P( x# o if(parentBgColor != "transparent") ( ~. W/ i' |& f5 {: v. g" H* S7 |) y
{
2 ^- b# ~. I5 g% n! N break;
. H" Q- v- Z& Z3 M1 `! [6 Q }; Y) j5 E9 o" g" l1 z
}
6 U0 W9 s. ^# |) A x) k( G if(isLast)
O5 \5 [: t% G0 ~6 p7 U x5 V' H {
. n) P0 O0 F, Q2 r, \( K7 _3 j if(debug)
" g/ y8 e! X! W; r: j, H/ L0 ^ {# H* o1 w' r0 ]. _2 j' y
alert("last!!");
5 X4 E2 [3 F, c }
5 J& i# n# @6 T$ R if((Math.abs(orgRGB[0]-255)<=minValue)&&(Math.abs(orgRGB[1]-255)<=minValue)&&(Math.abs(orgRGB[2]-255)<=minValue))0 O! e' ]7 W O8 i
{
& s3 x, z v6 B: |% o8 T6 q9 ? orgNode.parentNode.removeChild(orgNode);
5 J* A5 _0 u q$ ~4 w }+ m* ?" Q& k, H. H5 Q+ {7 {
}
) r9 a# v. z, z7 N. m else M ~; c7 Q/ c' w# {$ a3 d
{' N2 @, [# h7 N; K
if(debug)
( A" y3 Y$ i7 P6 f {4 ?0 E4 u( D3 w5 d' J6 }' |7 g
alert("compare color and parent bgcolor!");
' B8 U" b; z, I* x }
$ z% k5 C7 H" I$ G' c* d parentBgRGB=getRGB(parentBgColor);! @, P1 I/ G3 g( M
if((Math.abs(orgRGB[0]-parentBgRGB[0])<=minValue)&&(Math.abs(orgRGB[1]-parentBgRGB[1])<=minValue)&&(Math.abs(orgRGB[2]-parentBgRGB[2])<=minValue))* ^5 t2 b5 D/ G- O2 ^
{4 g7 _* v2 a5 e) u U) n
orgNode.parentNode.removeChild(orgNode); ]* ~0 b7 p9 l! d3 Y: r
}
% o1 I7 x3 l3 V1 Q6 M3 g }! n9 r3 A+ f; [( o
}
% o! O- R- I' c0 @5 y. [- \6 s$ @ }
: R0 O& `$ o* X }
6 B0 B8 @: z2 t: @/ W }" v' X# M1 v% z
& B" ]9 R* d2 f) b
) B/ q7 T4 A1 x& f: c. q var itemFrames = page.getElementsByTagName("frame");( X* c% i$ ]" Z& W7 Z
var itemiFrames = page.getElementsByTagName("iframe"); X$ h8 z/ b5 O" l# a/ [7 i" ?3 ~
) g- m6 Z) G+ |2 q var frame, iframe;+ Q4 k: Y7 }: ?
if (itemFrames.length > 0)
- n) }% }# ]1 o2 ~6 [9 e( k; n8 t {4 P7 y) l. t- o% ?2 X
for (var i = 0 ; i< itemFrames.length ; i++) 4 F2 l5 P6 Y+ p0 y. ^, B& ]+ u
{8 E2 j, X% y- ^# k R
frame = itemFrames.contentDocument;
' Q1 a9 [' Y/ x; a' R# r this.RemoveHide(frame,objname);
* R5 Q2 q/ p2 e0 g. W }
" h9 l7 f4 o# {8 h }
8 N+ R8 }2 S$ e3 ^; m if (itemiFrames.length > 0)
; G3 o6 _. x( s4 q {' O0 Q) d* L" S* x: x) G
for (var i = 0 ; i < itemiFrames.length ; i++)
( n4 \) _5 R% @3 L+ ^ {5 l! K( a& A* o/ s7 Z9 u3 E3 A
iframe = itemiFrames.contentDocument;7 \. r4 n- ^+ C& Q$ y
this.RemoveHide(iframe,objname); & E! w+ a) y' s9 k. X r
}3 d* F e5 ]5 J8 a+ ~6 o/ _
}$ m, H0 t4 G; |; a* ~! l" O
}' C9 y0 }% k6 _8 T
catch(e)
2 [+ v2 b- B6 U4 f/ T {# s8 W( \% a$ b0 L1 {
if(debug)
5 ~# C# |! c P2 V" V* h8 O0 z {& u( y3 U" \. i' E. I. f" ? q
alert(e.message);1 q9 f" J% ]6 L' @5 |4 P* Y
}
, `) s+ w# T& {1 n; A }
. D2 O E% \& [2 ?! N% F1 @ }
( o4 G0 g9 B/ q! J' {, I% b / A- @7 X* i' Q# q
}: z: \7 f( J6 s) h$ U' m- u
7 a6 W( |2 J) J* s+ _
function getRGB(colorString)
' o1 F9 C" s! w$ K$ s/ E{
& I5 B# D; `. z0 h var RGB = new Array;% a S. t7 p, A+ M3 v4 V0 |1 r1 R
var tempSting=colorString.substring(4,colorString.length-1);
) y5 m/ N7 ]) ?$ D- M* G* W9 O% u var tempArray=tempSting.split(",");/ v, \) n9 H9 s- s: v) k8 m" O
8 \# X) r" u# n* N/ ^6 ~' k RGB[0]=parseInt(tempArray[0]);# Z' I0 q, e+ S/ b" o
RGB[1]=parseInt(tempArray[1]);( k0 O5 i9 D! i8 s3 T
RGB[2]=parseInt(tempArray[2]);
& i" l5 S G$ y2 M
: h9 ?# z: B7 Y+ m _) u$ |1 i9 @: D return RGB;2 |5 U3 V4 a9 N( \' i
}+ t" H- Z5 |) U) f' k6 Y2 P
function keys(evt) ) G5 d7 Y, v2 X. I/ O
{
; c% P9 ~9 A: q% |5 l if(evt.ctrlKey && evt.keyCode=="81") B6 d, I9 b+ n. l
{ * \. J( B* X; g. i) E+ @1 c$ f! _$ x
CleanHideObj.on(0,1);/ ~3 Y; M( @. i7 L' U
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");
( _! P! Z3 y* p
0 c5 r0 |( |: O/ C: S- u! j- v3 w } ' o3 L# i" U Q t$ q6 I' v' ]4 I
} 6 F% b9 Z4 p' H
document.addEventListener('keydown', keys, false);
% j* W1 T! z1 d+ F) VGM_registerMenuCommand ('Clean Hide',0 a& q3 B+ g* A6 A' w; c! z
function(e){
/ n& D; [; _2 q' K; n9 d) Q- `/ ]+ qCleanHideObj.on(0,1)2 n7 _0 [, f! r
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");. X; N6 U9 _; X" K! C: D
});6 z- W5 C3 }6 B" y( F+ D
|
评分
-
查看全部评分
|