|
|
发表于 2013-4-7 23:47:38
|
显示全部楼层
本帖最后由 chenmeiyuan8 于 2013-4-8 00:01 编辑
% Z' |/ e; L3 y4 |! @7 A. Z0 f5 P1 x5 t7 i
火狐插件,用猴子+ Q& t. ]3 Y& i% O0 P& s
. S+ L' R/ j. K b- o6 r, F
var debug=false;
6 }- i$ _7 ?7 Bvar CleanHideObj=new CleanHideClass();7 }& r: c1 G- u- V( O# `: r
) T3 [- v& A1 i: X1 i( s5 Bfunction CleanHideClass() . _ D, K3 ^ h* G/ M8 L$ u
{ 6 P& _- x+ z+ ~, ]9 f# Z
# {# F+ U9 k: b2 n this.on=function(id,bMZ)" {$ d/ b& H/ f5 a; \. m5 P
{
3 t( @' S/ f% I: ]( H% X ) P. A0 p2 M* `! I" G7 i
if(id == 0)
( \5 N/ u% X2 H4 s H) a1 V {
2 o. `2 E Z' b J( b6 |9 h var page=/* document.getElementById("content").contentDocument */document; 8 {! t( m6 G& a& n! K7 }, H/ |' N. K
this.RemoveHide(page,"span");: J( N$ }1 _- b+ z
this.RemoveHide(page,"font");
" g' h; h( x, K3 Y7 x9 h this.RemoveHide(page,"div");. }5 w! E) y1 C8 }
this.RemoveHide(page,"p");' S0 ]2 ~! d- f( y) [" p4 z6 c
. v4 D) w1 l, M9 K& m2 c }
. Z) S8 `! ^ S
: t8 t5 ?% f" j r G2 K }
- k4 W0 |0 A0 e' A% G+ B this.getobjstyle=function(node,prop); J* Z. A% I4 p9 Q7 c
{
8 W* j. m: z% b7 n! k- g1 H& V try7 j% q' o, X4 x$ ~7 v, g. n
{
. V1 B7 A- @% Z' g# w0 f2 X8 B" E return node.ownerDocument.defaultView.getComputedStyle(node, "").getPropertyValue(prop);* c0 `, z. \% I
}( |& ~; w7 Q0 L; h% e
catch(e)
* z$ n/ {( m/ @. C$ @ {
. p, s* O: n2 p if(debug)) z9 ^( E3 [/ p
{
9 \2 ~4 L( L* c- `& { alert(e.message);
- P+ ]- s" M( ]4 F" e+ `8 q }9 t% D# T; U" J/ J$ a
* u. ?2 n% c' B2 B; c: l* a- U
return "200";
2 E3 Y, U( g' j+ G }
2 W8 {$ p$ n7 x! J7 o f1 Z }4 W8 R" P, G9 f. q7 a+ E
, P# G! t' ^2 J
this.RemoveHide=function(page,objname)5 { d8 `. b5 [2 ]3 c3 n c; o( G4 O
{
1 J- e& v1 ~- w" a$ X try
: D2 X% _5 v8 q& t' h1 K {/ r1 e2 P7 }( d( H8 l; i
var minValue=15;. Q; r1 J# ^; R) v
var objs=page.getElementsByTagName(objname);
! F. A n4 W H3 C2 E1 j
1 d! k, I1 o" r- v" @: `; T2 k if(objs.length == 0)
, G7 C+ d4 i9 h3 n0 o' c) x {- s5 m! g8 N# B+ W0 l" P
if(debug)
9 Z0 e' O' N: i i6 c, o {
" c2 _ a8 X3 k- S0 d0 | alert("no object found!:"+objname);
, x( |$ Y9 p! R' o% K7 Q }
- e; _3 d# _" ^: C9 O }
1 L* l7 n7 y/ x% Q/ K$ L) y2 c) g else
- z$ H. Y: ]! S: i/ f! S' ~ {
* ]3 X( k, u/ I* ~* D) M& Z, P ) n: P. @2 Z& s, N2 r
for(var i=objs.length-1;i>=0;i--)
' A2 [1 V% n, _ O/ N! Q {+ w* Q, {$ t! u M
var node=objs.item(i);
, a2 y( ?% v) E% G7 }
& C' u/ B/ ]2 C 1 C a& y( s! X# O! |0 @
if(this.getobjstyle(node,"display") == "none" ||; M; y+ Z: a, V+ q; P. x
this.getobjstyle(node,"visibility") =="hidden" || c6 k1 a3 V/ ^) |# q! o
parseInt(this.getobjstyle(node,"font-size")) == 0)
! W7 y2 v3 e& `+ s* X- X& M {* b" N* r8 c, T; H- y. F
if(debug)+ C* t \4 q; D1 q/ v- Q! u d2 X3 J
{
; t' D. ]4 }9 o& L7 D alert("remove invisiable!");
% \) h8 H5 T: x0 S. l }
& @: S/ [* ?0 |, d' Q; j! y node.parentNode.removeChild(node);/ S7 U1 p! p' o3 ~2 M a
7 T& {8 H# Y. P3 O3 r; e }* |" }6 v' W' e; v- u0 _
else ' E1 U+ h: _& l/ ~* k
{
$ U4 n0 l; m- y+ U if(node.parentNode) ) V; e2 s U. L0 B, e$ o9 N
{0 X3 e. t7 o) r0 [# C4 d) o
var orgNode=node;
) z: G# N; b5 \3 d0 j0 n var orgColor=this.getobjstyle(orgNode,"color")
8 e# ?- D( f! K- ?1 s7 W: R var orgRGB=getRGB(orgColor);
2 D8 E% y1 h& O+ X / ]8 e$ h) J U/ M. k$ Z, U
var parentNode=node.parentNode/ N# _/ ~% i3 A2 U8 C
var parentBgColor=this.getobjstyle(parentNode,"background-color");. \; j, ?# P2 P1 S4 X9 X
; r9 Z5 x2 W- M; U
var isLast=false;
- `0 M( k, W N0 z9 B& G& i& r
) s2 i* V- {" @) h2 Y while(parentBgColor == "transparent") # @/ g' N" r! _6 n* a2 V# D: C" h
{8 ^$ B+ r) I( C9 u9 S0 T* P
% X- ~4 l+ m! m! @1 b6 N
/ j5 q5 p3 p5 a; w if(parentNode.parentNode == null), J$ \, _) z' e: A: j9 N
{9 b3 O( q- e( s* o ?: e
isLast=true;
) @% P7 t" `" y7 ^! R3 { break;9 A. Q' s* c; O& z3 R
}. X4 a v9 Y) _) Q' R; i7 }
parentNode=parentNode.parentNode;* ]( e2 C# \/ N+ z
parentBgColor=this.getobjstyle(parentNode,"background-color");$ G, h8 S1 R# x1 o
) \$ c/ z, K [$ j" e if(parentBgColor != "transparent")
3 \) o& x$ k! J: L3 j0 _ {
0 L3 |, |; E# H- D2 F break;% A0 n5 a. s" A$ C. R# Y
}
4 Y! [- ^4 p! K0 l }
# L* k+ [. ]$ z1 \1 M! y) Z if(isLast)
% Z1 u) w5 N- _. X" } {
. R0 P0 z9 L- L+ v6 Z* l- r6 B if(debug)& U* w' o* }" n
{
1 A( d3 v9 F( t5 l w* Y5 q. Z' B alert("last!!");
0 [& }/ @* v! d* L8 ]1 _* B }
2 G. w! i/ `- G) s1 L if((Math.abs(orgRGB[0]-255)<=minValue)&&(Math.abs(orgRGB[1]-255)<=minValue)&&(Math.abs(orgRGB[2]-255)<=minValue))$ S8 \* Y8 W+ Z8 P/ |9 `
{
, M" p; m! I Q$ w* b. w orgNode.parentNode.removeChild(orgNode);
7 q% R; [" [: R0 @; n* X' m }" S) @% B% s5 M3 c
}
/ W T/ U% Z$ y8 C5 J0 o, ? else8 L8 U8 Q) B8 M3 _$ X
{, A2 C& l$ `0 x) }& Q
if(debug)
7 q" N6 J: r; N D5 ?* w8 W {
/ B/ x, Q8 i! Z" g9 G alert("compare color and parent bgcolor!");
9 z! \& w. {6 C$ o }
! l3 f1 Q9 \3 m6 b8 ~ parentBgRGB=getRGB(parentBgColor);
8 c7 r1 l5 S- L& F/ c% `4 W if((Math.abs(orgRGB[0]-parentBgRGB[0])<=minValue)&&(Math.abs(orgRGB[1]-parentBgRGB[1])<=minValue)&&(Math.abs(orgRGB[2]-parentBgRGB[2])<=minValue))
l7 J9 y8 z: U {$ a1 u5 n& }$ b$ H/ O
orgNode.parentNode.removeChild(orgNode);
7 N3 V. r! R& ~& h% ^" Z5 m/ b }
" ~/ ]$ H$ K+ z }
$ ^. t, |; p+ ?& Q: K }
# H. d. w. L D" g8 R, @ }
0 a0 E+ c* x1 q- @ }& W4 f9 k" z& }& b, u
}" v% I9 ~% F" Y. G' p
$ Q; l# M K8 u- ]% Z s/ F( [ & X( v0 _# B7 P- m( O: m- E
var itemFrames = page.getElementsByTagName("frame");, j! l, M, P* f& \
var itemiFrames = page.getElementsByTagName("iframe");3 Y5 c- V/ }: L& t$ o$ [; t4 K$ a
" C3 I& C5 s9 H# Q' ^1 ?% T var frame, iframe;; Z" l% d( l5 C; P/ T
if (itemFrames.length > 0)( |4 d# Q5 z+ G
{
0 t, D: C8 C& b+ R( M for (var i = 0 ; i< itemFrames.length ; i++)
, D) A0 a& o+ D2 i) e0 T0 x {
7 V. a1 |/ K1 Q+ q) j frame = itemFrames.contentDocument;. K+ P' ]7 B# \* c% q8 ~, {
this.RemoveHide(frame,objname);
+ l# `+ M2 M0 M5 T8 l4 ~! ?3 H" M, f5 b }
5 A) G% `3 | {# c7 s }
* { z; P+ s7 b/ e1 V( u: U if (itemiFrames.length > 0)
* Y/ @* t" n3 P! }; r7 V. w g( L {5 R+ p$ G& S- z1 E2 K! Z& e* X
for (var i = 0 ; i < itemiFrames.length ; i++) ( f' s! }$ }0 p X! u) W
{
- F6 o! O8 k* c4 ]2 b$ g" o6 O iframe = itemiFrames.contentDocument;( v3 C3 R/ O0 {# u9 W& y
this.RemoveHide(iframe,objname); : T7 h6 o a7 {- m; U! V
}/ v1 W [* I2 u/ g% ~; p% C6 \
}
) C$ ]8 J- O6 n; O }
1 _4 o4 h! n& r& L catch(e)
b) w/ J' {- H# t6 Y9 u( Y6 q {
! a# a4 N+ k5 Q4 Z9 t/ S, a8 S if(debug)# _( W7 ?, I2 L" h% W8 V0 i' C! [
{5 c4 b5 Y8 m, F3 ?( X
alert(e.message);
9 y6 P3 |& a6 w! w5 o }
) s$ o/ n" J* g" d- e8 _& N: n }
- m" f% f0 ?: G6 m8 s }& c7 } H, u; p1 E1 B G. T! R8 M
C; p4 J. T$ m" M0 \" M4 }3 w}. L* F$ G4 r' o" X9 ^
% x# u8 c8 G8 s9 N0 p% r9 B+ z
function getRGB(colorString)
E! h2 N4 x& a$ \{
c3 z7 i ?! l, z. S var RGB = new Array;$ |, w) \# C; Y0 q- p
var tempSting=colorString.substring(4,colorString.length-1);
9 G( o# \6 ]! U var tempArray=tempSting.split(",");
& U" U ?$ f# B: B, c! _7 a" e$ M; J- l5 K$ x
RGB[0]=parseInt(tempArray[0]);4 `6 |. |# s4 u' S
RGB[1]=parseInt(tempArray[1]);
' F; K" \" M3 Q6 T" n, o( _ RGB[2]=parseInt(tempArray[2]);
! U% O9 R. ^# O8 }/ A" V' Q
# I) e/ M& U0 t5 ^+ W! l% t+ \ return RGB;& B! Y' B( O# D. g5 [! K7 W+ c7 j# C t
}
/ X: l3 P# M9 J5 K2 \function keys(evt) 6 P* [; m& T6 s( j v( o/ W% u' \5 |
{
: q7 K" }* d# c$ i5 r C if(evt.ctrlKey && evt.keyCode=="81")
0 }$ [* Q2 f5 f+ U% r- x {
* ~5 v" r' E8 }8 H2 o! \ CleanHideObj.on(0,1);8 P7 c% G5 X2 k! v1 J' U" ~
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");
# D' l+ q5 T9 f+ q8 j9 M$ ]6 S 1 K# h) Q6 T9 }: C
}
5 L& X N; S4 |2 u4 } }
( H9 R' H) y- g/ l" w/ Q7 O/ Idocument.addEventListener('keydown', keys, false);
: y& {; e9 n @! c' N% Z" \7 \GM_registerMenuCommand ('Clean Hide',
6 m. |9 M1 l$ Q- pfunction(e){7 @; J$ e+ d7 |) l9 z* Y5 j) M7 k
CleanHideObj.on(0,1)
6 k0 k' u# f9 u/ Xalert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");
( }: W% I. i, b$ T8 U* h' i});
: c8 W( Q' H9 S9 g: h |
评分
-
查看全部评分
|