|
|
发表于 2013-4-7 23:47:38
|
显示全部楼层
本帖最后由 chenmeiyuan8 于 2013-4-8 00:01 编辑 9 y0 A& o+ n" b1 ~& R9 {
1 H# C* Q3 m% P' ^7 j
火狐插件,用猴子; k' B; ?& u" w
2 d; q& @/ M8 e; a) x( [
var debug=false;
: o/ ^/ q0 ?8 g6 ]var CleanHideObj=new CleanHideClass();
4 ^# R4 ~# Q# B( ^, V% z" Z+ {% h4 M
function CleanHideClass()
2 p# _/ s7 f4 }: T{
) V3 r+ W p% o& b- u7 r: `# V) O % Z' X3 G, F t' C
this.on=function(id,bMZ)8 Z& T S# O" u$ _8 D( j9 S
{% s( w# [" ]* O$ @9 k9 ?
1 [" @ G& E/ W& e0 z# ]7 o( G$ ] if(id == 0)% n% a, o2 F/ V" N/ o8 \, w
{
4 X0 u: D& a0 P: i var page=/* document.getElementById("content").contentDocument */document; ; f5 ^$ P+ V5 f9 e% }6 o* {
this.RemoveHide(page,"span");
2 ]) \7 J$ X2 `: _! E- w this.RemoveHide(page,"font");/ L/ R) z. m8 z* F1 Z
this.RemoveHide(page,"div");7 ^$ g l8 Y/ m K# w j, v
this.RemoveHide(page,"p");, G) M5 k8 W: O
, d) @8 x9 D% T2 ^* K' t7 W }8 }7 E0 _. L! M5 D! O3 U
0 [( R% s/ O- t# D! D* e
}! `, ~; v; T/ |" z
this.getobjstyle=function(node,prop)
5 |8 I F; m8 k3 b$ c1 Q {" B5 j/ m" i" b
try% E$ [, w+ A" g- A8 o/ @
{
1 `: h/ Z# ?3 d! z8 S5 M8 U# h return node.ownerDocument.defaultView.getComputedStyle(node, "").getPropertyValue(prop);
$ }4 Z2 z1 H/ m4 P' d) B: q! T }; ~0 w. c$ @; d( E6 s
catch(e)7 X8 r O5 Q1 w
{4 `* b7 o: K6 j% v+ j0 x
if(debug)4 _+ y4 d' Q5 t6 B
{
* `0 X" R3 ~+ {9 c alert(e.message);
! ~. F: {# o1 d1 U }
- m; m7 {4 B0 B; J, ] 8 T% O% v B! v% \# w
return "200";% R# V% X9 q- `8 l7 j; V
}4 m9 M+ `7 i; P; Y) ^
} z! X1 W) h1 ^8 G/ e
! i' x- D8 |4 q7 t2 k9 t this.RemoveHide=function(page,objname)1 H: E1 w$ C* _7 M3 v. N* L& W
{
- Q& X: E% {( p$ Q8 R try" l6 Z+ m5 B3 ~% n2 `2 T+ b' S9 |2 P
{
' l1 S1 j" {2 D6 x var minValue=15;
$ v3 ~$ S) i, {+ r var objs=page.getElementsByTagName(objname);
' ~! d* Q2 r8 C3 r
; b3 Z( O/ N5 I) K if(objs.length == 0) : _- G* h+ F1 y- h" |: V& L5 r
{
2 _, Y9 k! q6 H8 | if(debug): b& L5 Q- D( n, M+ I( z& p
{% ]* m6 ~+ F1 D0 X. X! b
alert("no object found!:"+objname);
" I, V1 k9 ^4 U4 h% V" \ }& [$ \- r( \7 C
}+ m+ X2 F5 d" {
else1 e; h9 K3 h6 T4 N( y/ `* K8 O
{
5 n/ U, P# i; D( O% i K 6 {! s: n g" P/ H% \
for(var i=objs.length-1;i>=0;i--)
$ J. |7 T, [7 t3 k; T8 ^& X( v {
+ A; X) ]: F+ b5 t# r1 `4 v var node=objs.item(i); 3 a) A( z+ L' `. a
0 B% v! R& {( F* g# r" d9 z* [1 t2 }& e 2 K8 s4 t3 { |. Q
if(this.getobjstyle(node,"display") == "none" ||9 ^4 w& T6 g: ?+ \6 q
this.getobjstyle(node,"visibility") =="hidden" ||/ H w7 Z, h6 Q* Z H2 f
parseInt(this.getobjstyle(node,"font-size")) == 0) $ p; ~$ o% a# {" u
{
- [6 U/ Z8 i' J$ R* F/ r0 k. ~ if(debug)
0 A" | B- }+ B' i) a {& s. N! j6 W0 Y+ i
alert("remove invisiable!");" \1 X$ T6 F+ P% C
}
+ \, ~: G+ E% K* _# ?% K4 a$ a Q node.parentNode.removeChild(node);
" C- k1 \9 u' U6 \* k & q" J$ K# |' [* D! Z9 D- _
}
# K& f2 W) b/ R& o else 2 i! i* f9 _ a
{+ h; {; Q' d9 R8 O$ c, {
if(node.parentNode) & s+ h( q0 N" b* h: Q% j' c
{
3 ^8 {" L0 w' \3 `2 [4 Q8 u var orgNode=node;# D$ N5 H& f% V% G
var orgColor=this.getobjstyle(orgNode,"color")3 ^& {& U; M6 N/ U4 R
var orgRGB=getRGB(orgColor);
( _) D6 k" y) w ]% ~ 5 ]( i1 E' o& Y% b; Z! g- Y
var parentNode=node.parentNode
6 J3 a: q) U1 E t4 S var parentBgColor=this.getobjstyle(parentNode,"background-color");
& D& B% J; v* U$ H2 D: T. ^/ l' a* b
8 l4 ?( |6 L' ^& t var isLast=false;
# S! p7 T- d$ S3 e' H t3 ^5 C W( G9 i
while(parentBgColor == "transparent")
0 n. h* o3 E* F2 D2 {+ a: X {
! i0 b$ J8 G9 g' i, Q; e* d, S 8 q- |& W3 O! a4 u$ {' [5 L
0 x& N8 F, f* f% p5 h0 J
if(parentNode.parentNode == null)
) b$ N# M" j. [# S8 q/ A {
& }% A- D( ~8 Y( T2 l isLast=true;
# I4 S; R, j7 [& \/ w7 `! ^ break;
, k& t( V2 ~# T, B' v! O7 k" _/ f }' G. `. ?. f5 y6 k4 Q
parentNode=parentNode.parentNode;) g5 W; y" v2 ~. `+ m K4 u
parentBgColor=this.getobjstyle(parentNode,"background-color");
$ G( X" ^ ~8 k5 `7 x) y9 F
+ s* N# X2 o; B if(parentBgColor != "transparent") " A) `; {3 i; H% C/ N4 H
{ }& U* u3 i7 D1 ?9 B& O. O
break;
( q; z1 [1 Z3 J! v- i0 J }# ^& X+ U& o" B' v% W0 x9 l2 `4 Y
}; x! W4 r$ V' u9 O
if(isLast)
" Q* n# J. H* w( T5 N% y9 k3 @ {
+ x! N4 x1 T. B& z `+ u, R if(debug)5 c; y; Y3 V8 D; w
{
7 W/ F" { q3 q% b alert("last!!");1 A& T, j# O& ^* j
}5 X, X* g/ K4 G; X' u6 p
if((Math.abs(orgRGB[0]-255)<=minValue)&&(Math.abs(orgRGB[1]-255)<=minValue)&&(Math.abs(orgRGB[2]-255)<=minValue))2 [% J; k" S: R3 s0 b/ Y7 y( ~( H, ~
{
# w1 J! ~. C3 i orgNode.parentNode.removeChild(orgNode); 1 X9 [0 X0 ]) p9 g! o3 ^
}6 r3 j) S3 A$ [
}
6 B: ^, m2 ^3 Z: |) `/ f else# _+ p4 q# S( n
{, N7 w! X3 r; f5 M! z+ @
if(debug)
8 O; H# o1 s& h* b; g! [: ^ {5 F% M1 E, O% h* A
alert("compare color and parent bgcolor!"); A- M2 `$ [; ?9 A* w# p2 ~# D
}0 M6 r, w) @- R0 z J" M( \6 n
parentBgRGB=getRGB(parentBgColor);
/ @; _* z2 R ?% d if((Math.abs(orgRGB[0]-parentBgRGB[0])<=minValue)&&(Math.abs(orgRGB[1]-parentBgRGB[1])<=minValue)&&(Math.abs(orgRGB[2]-parentBgRGB[2])<=minValue))
4 ?; X1 H, N! v" w2 n {2 X* s+ s0 @5 Q/ a
orgNode.parentNode.removeChild(orgNode);
' O- _! y7 b7 p! o8 Z$ c* X, O }2 V+ j+ E3 n* ?; [/ H
}
" c2 q2 h0 ?' B9 f- p! }* V3 Z }
. i, V# k: z I0 h! x }
* s9 V, Y% m8 r0 a& ?+ [ }
* ^2 V6 v; b6 g, l1 v }6 T8 b9 ~3 v5 G' v1 L; }2 M
' L( F! E" v, T7 P5 X- x2 `/ l& i
7 [& Q/ O1 g2 d0 P @
var itemFrames = page.getElementsByTagName("frame");
) V9 o. V2 w' b2 Y' z1 V var itemiFrames = page.getElementsByTagName("iframe");
) @+ k& e* k' Z# M1 ?
7 I! J8 C. s: i! q* n2 Z, R var frame, iframe;
) `; R+ H- B" b; u5 I6 m if (itemFrames.length > 0)+ D4 d2 N# N" Y' ~1 w" L$ r9 u/ N
{
- y2 E: Q6 x! e" V for (var i = 0 ; i< itemFrames.length ; i++)
- @9 k, m; K& Q# M3 E {
5 F1 U0 v3 N4 ^/ y: h frame = itemFrames.contentDocument;' J$ x3 v* I$ c5 H7 v& \
this.RemoveHide(frame,objname);
8 T, I r: j% Y }0 g* ~' t4 o& F) ]- @
}5 _& e9 t" h9 ], g, j
if (itemiFrames.length > 0)
" u# z. n2 D- x' q, j8 C, I+ A {
/ t {) p1 ^4 a$ \ for (var i = 0 ; i < itemiFrames.length ; i++)
+ |1 s) H* m6 o& |0 s% N2 D1 M {3 \+ b+ |3 E8 R q; A5 p7 z
iframe = itemiFrames.contentDocument;" c. T6 u) `( l5 }" S7 K% M' f
this.RemoveHide(iframe,objname); ' R' V4 d8 s' O8 b
}
6 ~3 y0 W( u0 |1 I }8 W( v3 a7 x! x
}
: u" \" z! W2 F# I# c( o5 g catch(e)
f* n6 [$ g' ~2 X* Z8 W/ L {7 ?! @" d' | K+ W
if(debug) z6 V+ r! c: A) ?' G
{% v* g* M% w) |8 H
alert(e.message);
& |+ F9 E+ f! }, q3 g* _: G }8 p* M ?, L( w
}! Q0 J) e* ?+ ]8 J" ]+ F
}
; o+ L2 z- c1 A1 R7 | 6 }7 I- m4 A, b4 x' r% D }
}) m' `8 g$ a) P- Y' P
8 R1 I" I* P. ^0 |" @ qfunction getRGB(colorString)
0 q; R. ~6 A7 v4 C{% }* K$ c, s$ Y
var RGB = new Array; K# f- u. d" e$ O% D4 ?) [3 ?! z
var tempSting=colorString.substring(4,colorString.length-1);
0 G: z; A9 \' \2 @: e var tempArray=tempSting.split(",");, A% z0 k6 `* I( g
# N% L6 ]2 s# {, }' T RGB[0]=parseInt(tempArray[0]);7 q8 K$ l" j. }, [1 k
RGB[1]=parseInt(tempArray[1]);. T3 \8 W% E; q* a
RGB[2]=parseInt(tempArray[2]);- l3 h6 [! V* k; I
" |0 C; A8 L' t0 H8 N return RGB;
* B) g$ T7 ?( v* L& N}
8 |* \ B2 X A3 G! }function keys(evt)
! j( C2 L* e- U5 s& T' X: x {
( f1 ^0 x' o& S if(evt.ctrlKey && evt.keyCode=="81") & j {5 x7 y% E
{
; N* n2 G7 `1 P, A8 v4 q CleanHideObj.on(0,1);% I/ o0 y6 Y4 M9 a
alert("Clean Hide successfully! Remember Hotkeys: CTRL+Q"); & `0 R: B2 H: a( P! e( u
4 m# t4 f. Q- o; q( n }
! J' E( K# `2 H: c" o- m8 P4 y. }+ c }
$ g+ q" L* ]1 w; G, F% rdocument.addEventListener('keydown', keys, false);
8 Z/ o1 P' n* B9 V, W! BGM_registerMenuCommand ('Clean Hide',2 \8 h0 U( |, l# [
function(e){
. f3 h4 D- w& g, o' n3 q& ^8 hCleanHideObj.on(0,1)
9 q+ F& W2 ^* E8 g. `$ P4 b- N! ualert("Clean Hide successfully! Remember Hotkeys: CTRL+Q");% C6 Y) d3 H3 V
});
! I; |. _: d" y2 ^( _7 Z3 \ |
评分
-
查看全部评分
|