|
|
发表于 2013-4-7 23:47:38
|
显示全部楼层
本帖最后由 chenmeiyuan8 于 2013-4-8 00:01 编辑
" j& Q& d# }9 A8 _
. x9 K* T. ]- Y n9 Y6 c火狐插件,用猴子
$ f5 s2 Z" r( ?6 V4 E
5 Y+ j7 I' u0 R6 Gvar debug=false;
8 m+ y1 {) D7 F! p0 Vvar CleanHideObj=new CleanHideClass();
3 P' K8 Z- L* F
7 ]9 V6 s R) M" Vfunction CleanHideClass()
/ o3 U" a8 B+ \ Q& Q) U{
8 i( W$ ?+ z2 w
# d) |1 f! x, @* i2 ? this.on=function(id,bMZ)' Z( G9 V* Q, ~6 R
{
0 E- |' V" G z3 r2 q8 W 1 t `. v( ?; V- N
if(id == 0)6 j: O; W# @( o* S' e4 `
{
& m: O. \" ]' r/ X var page=/* document.getElementById("content").contentDocument */document;
+ R2 p3 Z+ g, l6 x0 N! h7 J) k% H this.RemoveHide(page,"span");
" u! X1 N8 r7 j this.RemoveHide(page,"font");
0 k% W) d/ b( i3 V this.RemoveHide(page,"div");/ _# M" R4 ?3 {! I
this.RemoveHide(page,"p");8 y/ y' ^( A1 |% F" ~' @
; q3 G' m6 G2 o, ~ }$ s6 j7 I0 u( t
, K1 S6 }; S( H: Y. s0 U1 ] }' f/ d- p7 t0 B% n3 m# R& b
this.getobjstyle=function(node,prop)* P7 j+ t) _0 u5 A8 H
{
& W: r9 _1 r% F) I3 [! v- D try
7 p/ C! V3 A. { {0 p5 K0 g( ^ o3 ^: D9 z
return node.ownerDocument.defaultView.getComputedStyle(node, "").getPropertyValue(prop);
/ O$ u9 Y2 s$ R8 j }
$ i. f# Z D; s catch(e)# T2 }5 c! X: @: v. b
{
' V3 H) n; @4 ?0 s# `3 D if(debug)
- b' `; O7 G" ?1 W. K {
7 X" P! v; I& A1 k/ ?' ` alert(e.message);0 _- J0 O- m) V7 Q+ o9 M0 W4 K
}
# v0 Y; I7 _% i
+ b& o( c- u3 p# G; D# W, x return "200";
; c/ {: x2 F/ l }
+ y3 M N" S, i* C5 | }
4 X8 O+ A3 I$ x $ g+ ?2 p$ g7 _0 L/ K& D7 R
this.RemoveHide=function(page,objname)' m% J0 q9 R1 Y* S8 m! L
{
. O0 K* _0 x* t8 X try
7 @6 s" G$ x5 t: G* J8 N2 F {" d2 Q# a" I7 P0 w
var minValue=15;) ^& w2 @+ H! r2 U, |& e+ b
var objs=page.getElementsByTagName(objname);
+ d1 y/ Y6 \( A/ B" e% J+ {0 U, |" t; h. y2 l6 O
if(objs.length == 0) + f, m+ Z( A) G1 `0 M* w0 J' t( w
{
- G) y8 I9 o9 J) l1 m# ? if(debug)
7 p8 D! P- c4 r5 a* f4 j' G {* y% h* ^9 ]% G6 e5 C% m3 n
alert("no object found!:"+objname);2 Q V1 A7 t) |1 P! t% P
}3 c8 D5 P3 N* Y7 S3 m' Z v% K
}
: i0 ^, R: P* o6 M9 h& h4 p5 K else
* B; c2 t/ D4 { {
+ ~' v. s/ P0 y4 ]. F3 A
' _4 m* I& r5 w( D for(var i=objs.length-1;i>=0;i--) ( c$ O8 [: G( ^+ D0 w5 L
{7 F+ ^- X4 S0 ]8 V" L
var node=objs.item(i);
% I( h/ b7 N1 M2 Q2 i6 Q 5 W6 H9 s8 N6 o
2 k; D) F( G4 n8 m- ]8 c# _ if(this.getobjstyle(node,"display") == "none" ||$ U* ]+ i8 [0 C: j
this.getobjstyle(node,"visibility") =="hidden" ||
$ H4 d* p% c e R3 I parseInt(this.getobjstyle(node,"font-size")) == 0) + o k) T. ?6 q& M
{! p9 M& k! B/ ]3 \! b& b* `
if(debug)- \% W5 o7 W, V9 E% G4 j8 l
{
. O) M: B0 n$ `% `/ a alert("remove invisiable!");
7 }( ^, {# f3 D. g }
0 y) k7 O: w, h' A node.parentNode.removeChild(node);
4 b; [3 ^& k, U) c8 _% X 0 k$ p. i: Y: a( W8 g/ s+ T; [" ^
}
" i( x3 k9 x. ^$ o else ) t( J, Y5 m b! l5 q
{
. q5 h0 z& D4 N+ F5 E! O if(node.parentNode)
) M: `# V5 q7 l5 t' v+ J {
/ Z; c- p9 B3 O, d0 g var orgNode=node;$ z# y8 w0 G. J& Q+ v
var orgColor=this.getobjstyle(orgNode,"color")
5 H$ e' }* n: h' E var orgRGB=getRGB(orgColor); & N# e! w* @; g( O% w
8 V9 i# g- _2 | var parentNode=node.parentNode, x% F6 a3 l9 u. R
var parentBgColor=this.getobjstyle(parentNode,"background-color");
& m* i( S) L: j5 J
" ^6 e! H9 ~! m var isLast=false;
& s9 s' h# ?2 b8 r
% W& p$ |0 X% p0 Z while(parentBgColor == "transparent") 9 }+ }6 j0 H: @/ d- O& l7 o
{
/ Y& v) y* q, ]3 r# q I7 h) R% Y; V0 D
5 f' [, j, O7 V6 Y l1 ` if(parentNode.parentNode == null)+ s1 e# a& n- J' J6 }+ v
{3 ~* V6 ~# J3 l7 x( Z. K
isLast=true;$ Z R7 _6 n: ]0 [9 I: w
break;; }9 A! q$ u+ P2 I! n
}$ y$ T, a* z# v, B j
parentNode=parentNode.parentNode;
" F- g* j; M- C- l8 d parentBgColor=this.getobjstyle(parentNode,"background-color");6 v: l; Y2 A* F. L$ [
+ N' y+ b' t4 X5 D7 f
if(parentBgColor != "transparent") 4 A9 ?( ?& x3 ^* w3 ~
{
; I# ?% _- r# u# k! f- u& D break;& l' G9 j- |" x: M/ x
}
7 Y& x: n( V( I$ z5 O: } }. ~# x0 W, l* w9 J4 A, y* e
if(isLast) ! i5 V5 W8 u: g1 r
{
* h5 z, @" D+ p5 ?" F- v. v* g if(debug)4 C3 _) r; g- l) x& a( f
{
R1 q7 @, y7 M* X0 H# e8 p alert("last!!");! @" m. w; q3 Y: N' V
}; D1 f. P5 N( Q N
if((Math.abs(orgRGB[0]-255)<=minValue)&&(Math.abs(orgRGB[1]-255)<=minValue)&&(Math.abs(orgRGB[2]-255)<=minValue))9 J( V0 \3 P. d% A9 m" O# n
{
3 b! u+ \ W$ a) l4 ^; I% L* Y3 m orgNode.parentNode.removeChild(orgNode);
; f; N. _/ k4 q! n5 Q }
% M2 E% l8 _7 D" o) r }
7 p0 A0 y6 [$ I& S8 w l% q else
" W3 L3 H7 z% I* @7 N {3 Y5 z# u; x, y7 e; q( h
if(debug)* z' n9 e c# `: a) Z
{0 X+ R8 a/ C8 r+ G- W# t/ ^
alert("compare color and parent bgcolor!");9 r8 l2 F* z" y! t
}
0 t: u: w! j# K5 f! d7 ] parentBgRGB=getRGB(parentBgColor);% Y1 P6 ]7 f% `- @( o
if((Math.abs(orgRGB[0]-parentBgRGB[0])<=minValue)&&(Math.abs(orgRGB[1]-parentBgRGB[1])<=minValue)&&(Math.abs(orgRGB[2]-parentBgRGB[2])<=minValue))
* w9 z. k; ]4 e. C {
! k+ r _% s3 X+ }- B" O orgNode.parentNode.removeChild(orgNode);
- I7 H' O S/ a! S, S }& p, f: ~7 \% o, G V
}
5 q5 Q! o8 Q; m+ n% t$ M8 r% X& a }
j. n2 t9 H+ Q2 ~% g }
6 J! e+ U0 C5 X" M3 i' ]8 i }
% d; h; d1 I6 |2 P! X2 _6 k. g }" G1 [' A4 p& S ~- ^$ h" _8 l. N6 s
3 [+ o4 u( ^ D0 V 4 D0 f, K, l# T( x0 M- @7 J2 H
var itemFrames = page.getElementsByTagName("frame");
; c' Z$ N" j3 O7 u4 G var itemiFrames = page.getElementsByTagName("iframe");
4 V/ y0 o, j. O1 \
& G, L" U( H, c& o8 f! g var frame, iframe;
- K7 U" Z7 |: q! |; b" c if (itemFrames.length > 0)
1 L* Z/ i; J- p* ?8 ^8 s2 E' G6 P {& U; |0 T8 `- J# \3 A
for (var i = 0 ; i< itemFrames.length ; i++)
) r+ N& O) g5 V {
/ h$ [( C% ~# t( n% `2 P frame = itemFrames.contentDocument;
6 j9 `5 U5 q4 y- B2 B5 n# k6 q this.RemoveHide(frame,objname);
; Q4 h6 n& G5 o( }3 u }
% j2 ^( M+ M( O7 \+ W/ D }
; }( j2 ]" V- t: G: w9 K3 @# Z2 d if (itemiFrames.length > 0)7 h# R! `, \$ J; z3 G
{6 f/ @6 d& I* j: F2 A
for (var i = 0 ; i < itemiFrames.length ; i++)
+ f9 b+ M3 \# s0 q4 y {
/ y; s& B9 R- f7 T iframe = itemiFrames.contentDocument;, U+ ?% g, v6 M' g+ X' e% ~
this.RemoveHide(iframe,objname); 5 w/ r" |' g& y1 G9 S4 D
}# ~7 T0 r; {2 d, s/ g: R
}8 } a+ B) w# q( r* l
}4 U2 f, Y! c! w* t2 p3 T' i
catch(e)8 U2 {5 }. O5 R- P6 @
{9 S( W$ @" d& ?3 ^& S
if(debug)
( a# i+ P( H$ i5 ?- u! Z8 u {
$ z' W& R4 q/ b N alert(e.message);
7 t+ m+ I' h, l/ ?: Q2 e3 L }
( Q+ d' F3 S& L6 w- k$ S }
2 o, j% H/ O' V1 T7 P9 p7 g9 L }' G/ O4 q& t$ H" p7 Z
4 o# [. k! g) F. Z" m4 \}$ K0 B+ B$ _6 `4 A% x; e" P
6 C! k" Q6 ?) d* _9 O
function getRGB(colorString)1 p% C# s/ }* w7 ~& t2 H; p
{# R: y! b1 z: t5 Q& c7 a
var RGB = new Array;6 V8 y( P/ s. B- I$ e- m8 ~' \7 M
var tempSting=colorString.substring(4,colorString.length-1);' J t6 n& |- T+ a3 a
var tempArray=tempSting.split(",");
6 r/ y2 v. j& w) e/ r: [4 S6 H2 r" W9 m
RGB[0]=parseInt(tempArray[0]);
2 A5 V& ]3 o& m! ^% f' K RGB[1]=parseInt(tempArray[1]);+ v' L+ V* M! W. t, G
RGB[2]=parseInt(tempArray[2]);
9 R/ [# h' M# K $ [# K6 e, `* W! V; i0 [
return RGB;
3 @& n# }/ J) N$ u) Z3 P, F} ~; d3 I F! _; R( u) ?
function keys(evt) . `( ], X, V# k0 f) u
{
* \0 H4 J' i5 j$ ^! `6 x if(evt.ctrlKey && evt.keyCode=="81") 8 K1 P4 J0 s" d$ U
{
7 N$ e: l4 R& O# B& D0 i CleanHideObj.on(0,1);
, @& c# H5 O! W8 r; E alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");
4 u5 @4 L0 Y! T {
& V& C- \7 l3 L1 y% f* Y: a }
$ K" @% ]7 D& |1 E" ^# s }
$ ?& ~( U0 | y9 T; \- {document.addEventListener('keydown', keys, false);
3 ^ U, G$ z# \% k _! a$ Y+ zGM_registerMenuCommand ('Clean Hide',
( j0 p! w6 {8 u' G+ v ?function(e){
1 i6 k: m9 x9 b7 J$ T" f' `CleanHideObj.on(0,1)
* o+ ~ M/ \4 A, }1 N$ xalert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");; G: q$ C6 S8 ?, r2 B
});' C2 R1 m# G+ @0 L
|
评分
-
查看全部评分
|