JS屏蔽功能类(屏蔽F5,退格键,空格键......

1.屏蔽功能类
1]_�y$}i Z-r0 ITPUB个人空间d7S2h9QQ$a
1.1 屏蔽键盘所有键
p[+q o*iG)VU ~0 <script. language="javascript">
Zu%Q/pQ(z$q"b9T-pJ'D0 <!--
@ n/LI5Q4t0 function document.onkeydown(){
6F�{wMf!pP0 event.keyCode = 0;ITPUB个人空间Jo ?�_d4Y)e D
event.returnvalue = false;
`�ncK0]y'| /0 }
ErBf4T|3[(|0 -->ITPUB个人空间9/;tgaRW;K+U/
</script>ITPUB个人空间'?a mt3~b
ITPUB个人空间*o J?D/SQ-{ n
1.2 屏蔽鼠标右键 ITPUB个人空间S~%dX8s z!z

.ac@0TWF~7]0 在body标签里加上οncοntextmenu=self.event.returnvalue=false
(V d f"Ao n vJV0 ITPUB个人空间+I Z2o9M%bYe(?x
或者ITPUB个人空间 { |!q%f�eX,n Je]

@o8@Y+T%N0 <script. language="javascript">ITPUB个人空间A:s,[3S4Z*TBF
<!--ITPUB个人空间0w6H!e7ah;S
function document.oncontextmenu()
&x^ Ozj;r T0 {
2}+g%s]fQ})]0 return false;
Y[F#])pG"gu0 }ITPUB个人空间-].W ^e9t"m
-->ITPUB个人空间2fJ:wT+R Rl
</script>ITPUB个人空间J~{-_@/J3`3Ez,{5V
ITPUB个人空间qf"JcM
function nocontextmenu()
/5Z,]-@ OSa0 {ITPUB个人空间5` S? iI%KrXk
if(document.all) {
l)k5m%^Cva+S&{ H%W&o0 event.cancelBubble=true;ITPUB个人空间+mB};b;|C-jB
event.returnvalue=false;ITPUB个人空间�U"b(? [&G D&P
return false;ITPUB个人空间[9Z%hS4[)^#i8V?}
}
w |(Z3B2I,W)P"?0 }ITPUB个人空间9}Bl'Ip+O!Po

mz.O,eX0 或者
#Dv%bt%Vh `0
Z*^mNO'?(C0 <body nmousedown="rclick()" ncontextmenu= "nocontextmenu()">ITPUB个人空间4D(e0?4KT[ [EU
ITPUB个人空间 JbL/q,CA/t$T
<script. language="javascript">
#k%a ` ~'n/)FE0 <!--ITPUB个人空间*CX:^{-y/9X
function rclick()ITPUB个人空间2S+G/|8I)C.?#t
{
-v_WFu.l]W0 if(document.all) {
~:TYH-wL3[*Xt0 if (event.button == 2){ITPUB个人空间*|~}cT#gzxa^
event.returnvalue=false;
L wK5m'F1n]G%A;?0 }
zt4@?xu#qbH2_0 }ITPUB个人空间4^E7h(jf+q6O
}ITPUB个人空间.q,a;JC_ YyH n
-->ITPUB个人空间'd#F(X1Fwbp
</script>
XIdZA)hk;x#n&Bh0 ITPUB个人空间9/vR6yDFB,T
ITPUB个人空间5I|}(sXnI
1.3 屏蔽 Ctrl+N、Shift+F10、F5刷新、退格键 ITPUB个人空间/x/nI'D�W8w

NmJJ zl"Ac0 <script. language="javascript">
N1f:| D#pS(h&]y0 <!--ITPUB个人空间 ld1gSs�~"Q
//屏蔽鼠标右键、Ctrl+N、Shift+F10、F5刷新、退格键ITPUB个人空间+I5s"[$A`Q:V? rw
function window.onhelp(){return false} //屏蔽F1帮助
6W-h['c;Gk:Y0 function KeyDown(){ITPUB个人空间F!L0Fj0s�L5WO
if ((window.event.altKey)&&ITPUB个人空间L:M:TVHu6H5r`uT
((window.event.keyCode==37)|| //屏蔽 Alt+ 方向键 ←
NKw}1Fs0 (window.event.keyCode==39))){ //屏蔽 Alt+ 方向键 →ITPUB个人空间 J Ztg]2a|!q/%n E
alert("不准你使用ALT+方向键前进或后退网页!");
%S C:X%G]6d-RQ#r0 event.returnvalue=false;ITPUB个人空间Z7hhz�w)[L
}
Q L7t^4W/wM0
_h7d q_#nz9Q{ F)j0 /* 注:这还不是真正地屏蔽 Alt+ 方向键,ITPUB个人空间]7Ovvr9n-Z
因为 Alt+ 方向键弹出警告框时,按住 Alt 键不放,ITPUB个人空间z%F$kU%Y7`j%yfa:aj
用鼠标点掉警告框,这种屏蔽方法就失效了。以后若ITPUB个人空间)F:M bs-l1pw4Kk~
有哪位高手有真正屏蔽 Alt 键的方法,请告知。*/
9HT.`uA0b4SG0
$^rN/_z]0 if ((event.keyCode == 8) &&
o-DO(S2w!xdQ0 (event.srcElement.type != "text" &&
Xh;| K vA3e+sr0 event.srcElement.type != "textarea" &&
"]9t1I9k*K%D;Y&y7r0 event.srcElement.type != "password") || //屏蔽退格删除键
C/[fHzj)k1aSP$O:D)c0 (event.keyCode ==116)|| //屏蔽 F5 刷新键
keSc/|D0 (event.ctrlKey && event.keyCode==82)){ //Ctrl + R
4]OR(R:K0 event.keyCode=0;
4K2q R%C-d0 event.returnvalue=false;ITPUB个人空间T5c4GPPt$/
}ITPUB个人空间K6nU/ R3e+A(S
if ((event.ctrlKey)&&(event.keyCode==78)) //屏蔽 Ctrl+n
y_&^;C7_Wq0 event.returnvalue=false;
Gv@ l4CXN z0 if ((event.shiftKey)&&(event.keyCode==121)) //屏蔽 shift+F10
R ogk9Bq0 event.returnvalue=false;ITPUB个人空间4D{&l#d7bl8f9O
if (window.event.srcElement.tagName == "A" && window.event.shiftKey)ITPUB个人空间,IG&?JwN,`EbxW!c
window.event.returnvalue = false; //屏蔽 shift 加鼠标左键新开一网页ITPUB个人空间.UYhi7W$cn
if ((window.event.altKey)&&(window.event.keyCode==115)){ //屏蔽Alt+F4
1tQ+X(XD*u0 window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px");ITPUB个人空间PjoZfY4qA
return false;}
$v9c~/8E)a_r5P0 }ITPUB个人空间8VLB7w8H~&| x_S7k
/* 另外可以用 window.open 的方法屏蔽 IE 的所有菜单
r0}0ng gP/0 第一种方法:ITPUB个人空间)~L'GrbgE/}u
window.open("你的.htm", "","toolbar=no,location=no,directories= no,menubar=no,scrollbars=no,resizable=yes,status=no,top=0,left=0")ITPUB个人空间*]d1W8Ae*gP�o
第二种方法是打开一个全屏的页面:
cn4g%h"YTZ-arH0 window.open("你的.asp", "", "fullscreen=yes")
p$c uw-c[q8Z0j0 */
]/U9vD-]0 //-->
}[8i5[-X.j3d0 </script>ITPUB个人空间oD-hh.Q.S
ITPUB个人空间uK4}?:_FZ%p[
1.4屏蔽浏览器右上角“最小化”“最大化”“关闭”键
[,zl/isU};F)w4Vm0 ITPUB个人空间m:M)n%C1X U#U
<script. language=javascript>ITPUB个人空间T/u}G1?X*^0O3o /2D
function window.onbeforeunload()
;rN(K fT#H5`|0 {
_*b{;GT:}0 if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)ITPUB个人空间ECp}Np:h
{
)Z&d+PfQ/9B"W7D0 window.event.returnvalue = "";ITPUB个人空间O0O@*?{:f5U w
}ITPUB个人空间t#D"^`/fw A2FF
}
)KR"NC@4o�D0 </script>
!@@,A9`�MIT0 ITPUB个人空间2yh1?3DL*]
或者使用全屏打开页面ITPUB个人空间/Jj.`7Pl.y.jA/

.pMs?!h+x0K3rW'x0 <script. language="javascript">
1esd%^T'jYU0 <!--ITPUB个人空间pyH4A1]:}
window.open(www.32pic.com,"32pic","fullscreen=3,height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no");
*ud:I M"a-S S0 -->ITPUB个人空间$Ev|:g]�aIUNS
</script>ITPUB个人空间NW%pF7N'K _
ITPUB个人空间/5UL3i7Way_9i
注:在body标签里加上οnbefοreunlοad="javascript.:return false"(使不能关闭窗口)
U�v5H8y}jjr-z;@"I){C0 ITPUB个人空间#e3Km`)Q3^o
1.5屏蔽F5键 ITPUB个人空间2?2Z)U.^_asy
ITPUB个人空间nZmW0Q6E�z
<script. language="javascript">
.l;F8Vr q&KB K!S/a0 <!--ITPUB个人空间5p l a)v O!yo|jA
function document.onkeydown()
P0y%p tm4l%Owe0 {
}1g*W3G d8`+w'Ft0 if ( event.keyCode==116)ITPUB个人空间n:Dh C"Z
{ITPUB个人空间:HC v|!k
event.keyCode = 0;ITPUB个人空间d6e0KO5UAE
event.cancelBubble = true;ITPUB个人空间7[g,B)kst
return false;
!`c1tlA0C0 }ITPUB个人空间-j$LG:UbdN.z
}ITPUB个人空间 j�r5w b4Lx!z0rn
-->
LIz)A%//Ff'C0 </script>
g:E Z[p$g0 ITPUB个人空间e|B~S8t4Ul
1.6屏蔽IE后退按钮 ITPUB个人空间0q ]:m!Q3k+cN

D0]/uD�h*m:~~0u-Ts0 在你链接的时候用 <a href="javascript.:location.replace(url)">ITPUB个人空间.rb`a*}(m�d6cm1DC~
ITPUB个人空间5@ wwkiO/t)XnA
1.7屏蔽主窗口滚动条 ITPUB个人空间D)@y7]n'Fr y Q J-H J|

G/5LW/'dw /0 在body标签里加上 style="overflow-y:hidden"
*KS f^'i)fUT0
*?'lM&HS p{0 1.8 屏蔽拷屏,不断地清空剪贴板 ITPUB个人空间L*Eis h�F)/"MT`
ITPUB个人空间3U1Fs%dQ }(A
在body标签里加上οnlοad="setInterval('clipboardData.setData(/'Text/',/'/')',100)"
LvH*@2}/vV$~2].e0
;JGJ!v;Pz I0 1.9 屏蔽网站的打印功能 ITPUB个人空间+n0H)o+FG^#h,G#s

@//Fb+~0 <style>ITPUB个人空间9/z!a PaEg)b
@media print {ITPUB个人空间q1V$/]sk5s4~?
* { display: none }
/K d3Z�N%aD0 }ITPUB个人空间9q$CPA�Z,G?,xa
</style>ITPUB个人空间 Do(Q b0X

CDR_2B/ P8q0 1.10 屏蔽IE6.0 图片上自动出现的保存图标
,iB*H#b_4U0
8twA'a;p2I{0 方法一:ITPUB个人空间7Z)vd)lM2U b�a@'Df
<META. HTTP-EQUIV="imagetoolbar" CONTENT="no">ITPUB个人空间1e8g2U)^{Yvg
方法二:ITPUB个人空间NF~{5i
<img galleryimg="no">
g} t;^x0
/S'Hh"^~W0 1.11 屏蔽页中所有的script ITPUB个人空间|U2iG,e4Or

(V-M5H.GR*kP.~0 <noscrript></noscript>ITPUB个人空间"l#W$z:x8} [o ]'r
ITPUB个人空间nv9Kb Zk@ K
ITPUB个人空间T#|Z+kaqY2P
2.表单提交验证类 ITPUB个人空间'@&Z*A1]-C| I(c

]!M @ |.n/x S0 ITPUB个人空间_ |i�v0CIT
2.1 表单项不能为空
/.N u8alqbEF&{0 ITPUB个人空间Q3Uj'])]S(d1r ?
<script. language="javascript">ITPUB个人空间)qQ+xS#T"^
<!--ITPUB个人空间XL3h%dKf
function CheckForm()
$Z+^1|v o@4v"^0 {
ff$J;oz"q:V0 if (document.form.name.value.length == 0) {ITPUB个人空间4nCm J,G D
alert("请输入您姓名!");
Z+O.F nXE3Ct0 document.form.name.focus();ITPUB个人空间MC/h?7o&s
return false;
BdzL)|;VI#d0 }
(}t:v{&r] K7j0 return true;ITPUB个人空间e�M+Y�d,@ sn wC
}
[&N5^D,ga0 -->ITPUB个人空间B*G)QbM1E^/F&V
</script>ITPUB个人空间db-X|6o%g
ITPUB个人空间n:imN8O%pj
2.2 比较两个表单项的值是否相同
3DY"dFP7p[0
:w"dU6X'^P C0 <script. language="javascript">ITPUB个人空间$|TD-h�[%_.S
<!--
r-`U#t*L,T0 function CheckForm()ITPUB个人空间+p�g6ve�FJ-NA a'~
if (document.form.PWD.value != document.form.PWD_Again.value) {
3vQ'IR4d4BfB S0 alert("您两次输入的密码不一样!请重新输入.");ITPUB个人空间$zz�RIm
document.ADDUser.PWD.focus();
/v kase1h0 return false;ITPUB个人空间ItRc5T;hTY
}ITPUB个人空间%C Y)/r)a lK{1M2E4l
return true;ITPUB个人空间z,D4Sz][0V
}
s9PG_ U"bdK�`]x0 -->ITPUB个人空间)g/mPw3h2V6^
</script>
.k2g-EW!^UvB0
5P.]Z QZ O/s0 2.3 表单项只能为数字和"_",用于电话/银行帐号验证上,可扩展到域名注册等
9zP)xC:I0
yHX Q4{0 <script. language="javascript">ITPUB个人空间i-n1/3I2W[
<!--
gk J WN D1id0 function isNumber(String)ITPUB个人空间8Ntg#w J)NR+i]
{ITPUB个人空间-ZJ6a7`-z!_
var Letters = "1234567890-"; //可以自己增加可输入值ITPUB个人空间WZyJ{4ke
var i;ITPUB个人空间.H/-DkRn6|
var c;ITPUB个人空间Y:iakURwk�z'vC
if(String.charAt( 0 )=='-')ITPUB个人空间t N-^e&|5}X
return false;
t8lQ6J @0z0 if( String.charAt( String.length - 1 ) == '-' )
r0UPQx [;y0 return false;ITPUB个人空间T3f4R a W,{ H
for( i = 0; i < String.length; i ++ )
#h[&r$t _+F0 {
9J2W{9F$Z5w0 c = String.charAt( i );
/pIKS/W;p/|0 if (Letters.indexOf( c ) < 0)
$O0~.YPt k@hP0 return false;
rJ"D:KwgJ _0 }ITPUB个人空间ofk_E#pH
return true;ITPUB个人空间f"? l7C)w&s o,[F T
}ITPUB个人空间&V-G8w7u6y+KwBb3l
function CheckForm()ITPUB个人空间H+x:yKo
{ITPUB个人空间:VG4w^^T1m[
if(! isNumber(document.form.TEL.value)) {
"x*C"be].l0 alert("您的电话号码不合法!");ITPUB个人空间,r/T$ND"IoRbd
document.form.TEL.focus();ITPUB个人空间&Y,ECgKg//V:g
return false;
f9Q/!| a%`"v$a1~0 }
6m k x#Ai[0 return true;
z_4`f}5S(C8P0 }ITPUB个人空间M;Hz8hc�Z]2x&W*o&B
-->ITPUB个人空间,| x~4B] v%X
</script>ITPUB个人空间JW,U C7n6^g-[
ITPUB个人空间K[~N!|X,B ^
ITPUB个人空间5PSp-`uN
2.4 表单项输入数值/长度限定 ITPUB个人空间:Kpe*Z3AT$d8q
ITPUB个人空间x(z3r+M*~m!Cir
<script. language="javascript">
i Y5G(d:{9Fbi7_.`0 <!--
%l yPQ Lm)[f0 function CheckForm()
4~IU*`0~xGi G3E0 {ITPUB个人空间;{.|&}(/zX?
if (document.form.count.value > 100 || document.form.count.value < 1)ITPUB个人空间;dEe�A(Cy
{ITPUB个人空间 M4^z*C2K#c9]
alert("输入数值不能小于零大于100!");
wx]GAF.LDD0 document.form.count.focus();ITPUB个人空间#H*mY&@1y*R!@]
return false;
P]1yvG'`;a0 }
0{8/tYQ:w`[0 if (document.form.MESSAGE.value.length<10)
;vsuT(z0 {ITPUB个人空间0Oc6v8G/x
alert("输入文字小于10!");
q n$z&T2`%S.F[.[y0 document.form.MESSAGE.focus();ITPUB个人空间9dw1D8rri'Q WK
return false;ITPUB个人空间H2`e4E/FF/{6[$v
}ITPUB个人空间+URJ|SE
return true;
1dpH.gj.D"|0 }ITPUB个人空间tiCe&t /'d;Z?c K
//-->ITPUB个人空间[;p s|_h/K
</script>ITPUB个人空间 P@6M/7r)n?
ITPUB个人空间{2ZEv Q)b?@,Y-J
2.5 中文/英文/数字/邮件地址合法性判断 ITPUB个人空间2Q,T6PBJ+x)p9e

h5I T {�wyr#A0 <SCRIPT. LANGUAGE="javascript">
2E3/oRmyrYK6q0 <!--
SaWp|E0]0 ITPUB个人空间w:p|zw4];k
function isEnglish(name) //英文值检测ITPUB个人空间+`"t^E [)}9d3R.d:l
{
zDwpru0 if(name.length == 0)ITPUB个人空间$K!V kY0c!X#l }-FS
return false;ITPUB个人空间TN0D�EhkS4_| q
for(i = 0; i < name.length; i++) {ITPUB个人空间6Jt0j:T j
if(name.charCodeAt(i) > 128)
7S#w9r } W_0 return false;
C4V)]W0q^xC$N/JO0 }ITPUB个人空间}-}[1~!hF2c
return true;
dj5{2gc4Zc0 }ITPUB个人空间7kbnA5nRV6p
ITPUB个人空间)Oo*Sb6GD]"X
function isChinese(name) //中文值检测
t!nj[fP4W0 {ITPUB个人空间'?Al3JhR%vV%x /1u
if(name.length == 0)
W l1KC9?Zd5X0 return false;
2y;h7Z2y8DN-U.[0 for(i = 0; i < name.length; i++) {
8Z/dV}7G6f0 if(name.charCodeAt(i) > 128)ITPUB个人空间)C�I g,[.Oe
return true;ITPUB个人空间KO3X,nh,t,W
}
`)f]z/H~P6i y�q0 return false;
&{5UNKnZ#l(|0 }ITPUB个人空间P)h0KN:P:^C4r

f ?3u4x G9`M�q0 function isMail(name) // E-mail值检测ITPUB个人空间c/DM{R/ Z
{
F3C~@ ]:Mf5C0 if(! isEnglish(name))
tV ZNa!ZO q0 return false;ITPUB个人空间_6@K.F0zrS9x
i = name.indexOf("@");
'Z v,wFTH+NJ7G"}0 j = name.lastIndexOf("@");
)s)?'_FCcrJ0 if(i == -1)ITPUB个人空间-D;D7p.cAd[
return false;ITPUB个人空间)e9q;o|&^XN
if(i != j)
@dk!T)S4RG@u A0 return false;
!I7~JrE0Z;W0 if(i == name.length)
w5T;d _&gt gpa0 return false;ITPUB个人空间x-z-t)O:k I
return true;ITPUB个人空间5W%{4tNT9U4W+]
}
9['CE7?5{0
9A L6Sw8Nt[@/}/K0 function isNumber(name) //数值检测
6@O.W5d d p:YL1M0 {ITPUB个人空间t Y6sl/'pK-/,@+?%`V`
if(name.length == 0)
y^mrXz8f s5eY0 return false;
rd!D!W/nbtY)v0 for(i = 0; i < name.length; i++) {
o8JwN^w0 if(name.charAt(i) < "0" || name.charAt(i) > "9")ITPUB个人空间0F�yK2A:x fR:Z Lsx
return false;
g#uPW,^uQ0 }
qo!qd+mI P0 return true;ITPUB个人空间Ki`]YC
}
#jGGIY`*o2d0
:mv$W:yWv0 function CheckForm()ITPUB个人空间b?kt7[ r Mk` c
{ITPUB个人空间n9H{@:Ti5J
if(! isMail(form.Email.value)) {
}(Q�y;tW kh#N4S0 alert("您的电子邮件不合法!");ITPUB个人空间I;g'Qfiu
form.Email.focus();ITPUB个人空间$l'jS T3g ?,oR}
return false;ITPUB个人空间w{X~n
}
0BG;dFd-S0 if(! isEnglish(form.name.value)) {
#x�_E9ne0 alert("英文名不合法!");ITPUB个人空间eZ kd:p3Q:K
form.name.focus();ITPUB个人空间;Q]:KGl*NI DQ
return false;
{x m3Y;b9X{u/^0 }ITPUB个人空间ooDN)A)OR*@
if(! isChinese(form.cnname.value)) {
g!UG.K-YL;d?o0 alert("中文名不合法!");ITPUB个人空间 F-X�c6c8l!l[(M
form.cnname.focus();ITPUB个人空间,W7dA0N$[4C5_
return false;
(/gA$X8FED"|6b0 }ITPUB个人空间j WN5EK;M:W!F
if(! isNumber(form.PublicZipCode.value)) {
7n]5tAP,H0 alert("邮政编码不合法!");
vy,iU}0 form.PublicZipCode.focus();
[ C1D0ffLc0 return false;ITPUB个人空间!yy-vI6o
}ITPUB个人空间-ku:ZPdlNWv
return true;ITPUB个人空间0{*Q9L| ba}
}ITPUB个人空间PF9BB+rn
//-->
{XGFS$yRG0 </SCRIPT>ITPUB个人空间4SR$v u%iM@
ITPUB个人空间 ^:P@#NbT2P
2.6 限定表单项不能输入的字符 ITPUB个人空间m pX0F e.b8H:l

8H!w:D?D;@)M,~0 <script. language="javascript">
]?Z5H$Bdw8ro0 <!--ITPUB个人空间dEr7hT*/7F
ITPUB个人空间7u'de2X.w.bJ
function contain(str,charset)// 字符串包含测试 函数
*wV0Y"u.g7U0 {
s:}6w*m |-/st0 var i;ITPUB个人空间%u$G^EzE%?!zJ6u
for(i=0;i<charset.length;i++)
$~/bm.V(n,ki0 if(str.indexOf(charset.charAt(i))>=0)ITPUB个人空间| ~^*y?/+f%K;F|`
return true;ITPUB个人空间l,n!th}
return false;ITPUB个人空间/(Nz:Nxu$B
}
,[ jOU!a:U*o:W0 ITPUB个人空间c.s5N X]Qj2a
function CheckForm()
~ q[![1M/@mZ0 {ITPUB个人空间bj/^oa+x~_@
if ((contain(document.form.NAME.value, "%/(/)><")) || (contain(document.form.MESSAGE.value, "%/(/)><")))ITPUB个人空间3ozz!Yj k7e hq0A
{
c!RffzT0 alert("输入了非法字符");
4y'_�v3j0R w9l*Gu�S0 document.form.NAME.focus();
@m$u&Ri�SdCk1]0 return false;
(n+hP4t5/1D:I0 }
p#q7z9KriT0 return true;
^f8Eue4U!^[7j0 }
1Otk/m]7?/i+P0 //-->ITPUB个人空间5C&z[-THl#G(}
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值