javascript基础知识

JavaScript基础知识 

创建脚本块

1: <script language=”JavaScript”>

2: JavaScript code goes here

3: </script> 

隐藏脚本代码

1: <script language=”JavaScript”>

2: <!--

3: document.write(“Hello”);

4: // -->

5: </script> 

在不支持JavaScript的浏览器中将不执行相关代码

浏览器不支持的时候显示

1: <noscript>

2: Hello to the non-JavaScript browser.

3: </noscript> 

链接外部脚本文件

1: <script language=”JavaScript” src="/”filename.js"”></script> 

注释脚本

1: // This is a comment

2: document.write(“Hello”); // This is a comment

3: /*

4: All of this

5: is a comment

6: */ 

输出到浏览器

1: document.write(“<strong>Hello</strong>”); 

定义变量

1: var myVariable = “some value”; 

字符串相加

1: var myString = “String1” + “String2”; 

 9 字符串搜索

1: <script language=”JavaScript”>

2: <!--

3: var myVariable = “Hello there”;

4: var therePlace = myVariable.search(“there”);

5: document.write(therePlace);

6: // --> 

7: </script> 

 search 方法指明是否存在相应的匹配。如果找到一个匹配,search 方法将返回一个整数值,指明这个匹配距离字符串开始的偏移位置。如果没有找到匹配,则返回 -1

10 字符串替换

1: thisVar.replace(“Monday”,”Friday”); 

11 格式化字串

<script type="text/javascript">

var myVariable = "Hello there";

document.write(myVariable.big() + "<br/>");

document.write(myVariable.blink() +"<br/>");

document.write(myVariable.bold() + "<br/>");

document.write(myVariable.fixed() + "<br/>");

document.write(myVariable.fontcolor("red") + "<br/>");

document.write(myVariable.fontsize("18pt") + "<br/>");

document.write(myVariable.italics() + "<br/>");

document.write(myVariable.small() + "<br/>");

document.write(myVariable.strike() + "<br/>");

document.write(myVariable.sub() + "<br/>");

document.write(myVariable.sup() + "<br/>");

document.write(myVariable.toLowerCase() +"<br/>");

document.write(myVariable.toUpperCase() + "<br/>");

var firstString = "My String";

var finalString = firstString.bold().toLowerCase().fontcolor("red");

</script>

:<b>黑体,<i>斜体,<u>下划线,<tt>打字机体。

12 创建数组

1: <script language=”JavaScript”>

2: <!--

3: var myArray = new Array(5);

4: myArray[0] = “First Entry”;

5: myArray[1] = “Second Entry”;

6: myArray[2] = “Third Entry”;

7: myArray[3] = “Fourth Entry”;

8: myArray[4] = “Fifth Entry”;

9: var anotherArray = new Array(“First Entry”,”Second Entry”,”Third Entry”,”Fourth Entry”,”Fifth Entry”);

10: // -->

11: </script> 

<script type="text/javascript">

var myArray = new Array(5);

myArray[0] = "First Entry";

myArray[1] = "Second Entry";

myArray[2] = "Third Entry";

myArray[3] = "Fourth Entry";

myArray[4] = "Fifth Entry";

var arr,str="";

for( arr in myArray ){

str += arr+":"+myArray[arr]+"\n";

}

alert(str.length);

</script>

13 数组排序

(对象数组)

<script type="text/javascript">

var myArray = new Array(5);

myArray[0] = "z";

myArray[1] = "c";

myArray[2] = "d";

myArray[3] = "a";

myArray[4] = "q";

document.write(myArray.sort());

</script>

 

14 分割字符串

<script type="text/javascript">

var myVariable = 'a,b,c,d';

var stringsplit=myVariable.split(',');

for(i=0;i<stringsplit.length;i++){

document.write(stringsplit[i]+'<br>');

}

</script> 

split 方法的结果是一个字符串数组

15 弹出警告信息

<script type="text/javascript">

window.alert("hello");

</script>

 

16 弹出确认框

<script type="text/javascript">

var truthBeTold = window.confirm("单击确定继续。单击取消停止。");

if (truthBeTold) {

    window.alert("欢迎访问我们的 Web 页!");

    }  else  window.alert("再见啦!");

</script> 

提示消息框

<script type="text/javascript">

var theResponse = window.prompt("欢迎?","请在此输入您的姓名。");

document.write(theResponse);

</script>

17 定义函数

<script type="text/javascript">

function multiple(number1,number2) { 

var result = number1 * number2;

return result;

}

   </script>

 

18 调用JS函数

1: <a href=”#” onClick=”functionName()”>Link text</a>

2: <a href="/”javascript:functionName"()”>Link text</a> 

 

19 在页面加载完成后执行函数

<body onLoad='functionName();'>

Body of the page

</body>

20 条件判断

<script type="text/javascript">

var userChoice = window.confirm("Choose OK or Cancel");

var result = (userChoice == true) ? "OK" "Cancel";

document.write(result);

</script>

21 指定次数循环

1: <script>

2: <!--

3: var myArray = new Array(3);

4: myArray[0] = “Item 0”;

5: myArray[1] = “Item 1”;

6: myArray[2] = “Item 2”;

7: for (i = 0; i < myArray.length; i++) { 

8: document.write(myArray[i] + “<br/>”);

9: }

10: // -->

11: </script> 

 

22 设定将来执行

<script type="text/javascript">

Function hello () 

window.alert ("Hello");

}

window.setTimeout ("hello ()", 5000);

</script>  

23 定时执行函数

<script type="text/javascript">

 function hello() 

window.alert('Hello');

window.setTimeout('hello()',5000);

}

window.setTimeout('hello()',5000);

</script>

24 取消定时执行

<script type="text/javascript">

 function hello() 

window.alert('Hello');

 }

 var myTimeout = window.setTimeout('hello()',5000);

 window.clearTimeout(myTimeout);

</script>

25 在页面卸载时候执行函数

<body onUnload='functionName();'>

Body of the page    

</body>

JavaScript就这么回事2:浏览器输出 

26 访问document对象

<script type="text/javascript">

 var myURL = document.URL;

 window.alert(myURL);

</script>

 

27 动态输出HTML

<script type="text/javascript">

document.write ('<p>Here’s some information about this document:</p>');

document.write ('<ul>');

document.write('<li>Referring Document: '+ document.referrer '</li>');

document.write('<li>Domain: ' + document.domain + '</li>');

document.write('<li>URL: ' + document.URL + '</li>');

document.write('</ul>');

</script> 

   28 输出换行

document.writeln('<strong>a</strong>');

 document.writeln('b');

29 输出日期

<script type="text/javascript">

var thisDate = new Date();

document.write(thisDate.toString()+"<br>");

document.write(thisDate);

</script>

30 指定日期的时区

<script type="text/javascript">

var myOffset = -2;

var currentDate = new Date();

var userOffset = currentDate.getTimezoneOffset()/60;

var timeZoneDifference = userOffset - myOffset;

currentDate.setHours(currentDate.getHours() + timeZoneDifference);

document.write("The time and date in Central Europe is: " + currentDate.toLocaleString());

</script>

31 设置日期输出格式

<script type="text/javascript">

var thisDate = new Date();

var thisTimeString = thisDate.getHours() +":"+thisDate.getMinutes();

var thisDateString = thisDate.getYear() + "/" + thisDate.getMonth() + "/" + thisDate.getDate();

document.write(thisTimeString + "\t on " + thisDateString);

</script>

<!--

getFullYear 方法以绝对数字的形式返回年份值。

例如,1976 年的返回值就是 1976。这样可以避免出现 2000 年问题,

从而不会将 2000 11日以后的日期与 1900 11日以后的日期混淆起来。

   -->32 读取URL参数

<script type="text/javascript">

var urlParts = document.URL.split("?");

var parameterParts = urlParts[0].split("&");

//window.alert(parameterParts);

for (i = 0; i < parameterParts.length; i++) 

var pairParts = parameterParts[i].split("+");

var pairName = pairParts[0];

var pairValue = pairParts[1];

document.write(pairName + ":" +pairValue );

}

</script>

你还以为HTML是无状态的么?

33 打开一个新的document对象

<html>

  <head>

    <script type="text/javascript">

document.write("TestDemo");

function writeDocBack() 

   var oNewDoc = document.open("text/html","replace"); 

   var sMarkup = "<HTML><HEAD><TITLE>New Document</TITLE></HEAD>"

   sMarkup += "<BODY>Hello, world!</BODY></HTML>"

   oNewDoc.write(sMarkup); 

   oNewDoc.close(); 

  

</script>

   </head>

  

  <body >

<form><input onClick=writeDocBack() type=button value="Write Document" name="button2">

</form> 

  </body>

</html>

34 页面跳转

<script type="text/javascript">

window.location.href ="http://www.baidu.com";

</script>

 <script type="text/javascript">

window.location.href ="/TestDemo/page/MyHtml.html";

</script>

35 添加网页加载进度窗口

open方法,打开一个新的窗口。在open方法的参数列表中指定要装载的URL资源、窗口的名称、窗口的主要特性。

在某个网页文件打开的同时,自动打开一个新的用于发布通知的窗口,新的通知的窗口在一个指定的时间后又自动关闭。

首先编写一个test.jsp网页文件,文件内容如下:

<script type="text/javascript">

Var placeHolder =window.open('MyHtml.html','123','width=200,height=200');

</script> 

接着编写一个'MyHtml.html网页文件,文件内容如下:

<body>

 <script type="text/javascript">

window.setTimeout('window.close()',5000)

</script>

    <center><h1>通知</h1></center>

5以后,此网页将要自动关闭!!

  </body>

1: <html>

2: <head>

3: <script language='javaScript'>

4: var placeHolder = window.open('holder.html','placeholder','width=200,height=200');

5: </script>

6: <title>The Main Page</title>

7: </head>

8: <body onLoad='placeHolder.close()'> 

placeHolder.close();运行新的程序,弹出窗口刚打开,马上就会被关闭

9: <p>This is the main page</p>

10: </body>

11: </html>

JavaScript就这么回事3:图像 

 

36 读取图像属性

<img src="/TestDemo/image/a28342_lc1.jpg" name='myImage'>

<href='/TestDemo/page/MyHtml.html' onclick="window.alert(document.myImage.width)">Width</a>

37 动态加载图像

Image()对象 
预加载图像最简单的方法用javascript将一个新的Image()对象实例化,并把你想要预加载的图像的URL传递给它。假设我们有一个叫做 a28342_lc1.jpg 的图像,我们希望,当用户把鼠标放在一个已经显示过的图像上的时,系统能够显示出这个图像。为了预加载这个图像,以便实现更快的响应时间,我们只用创建一个新的Image()对象,将其命名为heavyImage,并使用onLoad()事件处理程序把它同时加载到页面上。

<html>

  <head>

<script type="text/javascript">

function preloader() {

heavyImage = new Image();

heavyImage.src = "/TestDemo/image/a28342_lc1.jpg";

}

</script>

  </head>

  <body onLoad="javascript:preloader()">把图象同时加载到页面上

<href='/TestDemo/page/MyHtml.html' onMouseOver="javascript:document.img01.src='/TestDemo/image/a28342_lc1.jpg'">

<img name="img01" src="/TestDemo/image/S3010043.JPG"></a>

  </body>

</html>

要注意的是,图像标记自身并不会处理onMouseOver()onMouseOut()事件,这就是为什么上面例子里的<img>标记被放在一个<a>标记里,后者的确加入了对这些事件类型的支持。 

用数组加载多个图像

38 简单的图像替换

<script type="text/javascript">

rollImage = new Image;

rollImage.src = "/ImageDynamic2/image/F-15I.jpg";

defaultImage = new Image;

defaultImage.src = "/ImageDynamic2/image/F-16D.jpg";

  

</script>

  </head>

  <body>

   <href="/myUrl" onMouseOver='document.myImage.src = rollImage.src;'onMouseOut='document.myImage.src = defaultImage.src;'>

<img src="/ImageDynamic2/image/F-16D.jpg" name='myImage' width=100 height=100 border=1> 

  </body> 

ImageDynamic2

39 随机显示图像

<script type="text/javascript">

 var imageList = new Array;

imageList[0]="/Random-39/image/F-15I.jpg"

imageList[1]="/Random-39/image/F-16D.jpg"

imageList[2]="/Random-39/image/F-18F.jpg"

imageList[3]="/Random-39/image/F-35.jpg"  

var imageChoice = Math.floor(Math.random() * imageList.length);

document.write('<img src="' + imageList[imageChoice] + '">');

</script> 

40 函数实现的图像替换

<script type="text/javascript">

var source = 0;

var replacement = 1;

function createRollOver(originalImage,replacementImage)

var imageArray = new Array;

imageArray[source] = new Image;

imageArray[source].src = originalImage;

imageArray[replacement] = new Image;

imageArray[replacement].src = replacementImage;

return imageArray;

 }

var rollImage1 = createRollOver("/function-40/image/2.jpg","/function-40/image/3.jpg");

</script>

  </head>

 

  <body>

 <href='#' onMouseOver='document.myImage1.src = rollImage1[replacement].src;'onMouseOut='document.myImage1.src = rollImage1[source].src;'>

<img src="/function-40/image/4.jpg" width=200 height=200 name='myImage1' border=0></a> 

 41 创建幻灯片

<script type="text/javascript">

var imageList = new Array;

imageList[0] = new Image;

imageList[0].src = "/PowerPoint-41/image/1.jpg";

imageList[1] = new Image;

imageList[1].src = "/PowerPoint-41/image/2.jpg";

imageList[2] = new Image;

imageList[2].src = "/PowerPoint-41/image/3.jpg";

imageList[3] = new Image;

imageList[3].src = "/PowerPoint-41/image/4.jpg";

function slideShow(imageNumber) 

document.slideShow.src = imageList[imageNumber].src;

imageNumber += 1;

if (imageNumber < imageList.length) 

window.setTimeout("slideShow(" + imageNumber + ")",3000);

}

}

</script>

  </head>

  

  <body onLoad='slideShow(0)'>

<img src="/PowerPoint-41/image/1.jpg" width=100 name='slideShow'> 

42 随机广告图片

1: <script language=”JavaScript”>

2: var imageList = new Array;

3: imageList[0] = “image1.jpg”;

4: imageList[1] = “image2.jpg”;

5: imageList[2] = “image3.jpg”;

6: imageList[3] = “image4.jpg”;

7: var urlList = new Array;

8: urlList[0] = “http://some.host/”;

9: urlList[1] = “http://another.host/”;

10: urlList[2] = “http://somewhere.else/”;

11: urlList[3] = “http://right.here/”;

12: var imageChoice = Math.floor(Math.random() * imageList.length);

13: document.write(‘<a href=”’ + urlList[imageChoice] + ‘“><img src=”’ + imageList[imageChoice] + ‘“></a>’);

14: </script> 

JavaScript就这么回事4:表单 

还是先继续写完JS就这么回事系列吧~

43 表单构成

1: <form method=”post” action=”target.html” name=”thisForm”>

2: <input type=”text” name=”myText”>

3: <select name=”mySelect”>

4: <option value=”1”>First Choice</option>

5: <option value=”2”>Second Choice</option>

6: </select>

7: <br/>

8: <input type=”submit” value=”Submit Me”>

9: </form> 

44 访问表单中的文本框内容

1: <form name=”myForm”>

2: <input type=”text” name=”myText”>

3: </form>

4: <a href='#' onClick='window.alert(document.myForm.myText.value);'>Check Text Field</a> 

45 动态复制文本框内容

1: <form name=”myForm”>

2: Enter some Text: <input type=”text” name=”myText”><br/>

3: Copy Text: <input type=”text” name=”copyText”>

4: </form>

5: <a href=”#” onClick=”document.myForm.copyText.value =

6: document.myForm.myText.value;”>Copy Text Field</a> 

46 侦测文本框的变化

1: <form name=”myForm”>

2: Enter some Text: <input type=”text” name=”myText” onChange=”alert(this.value);”>

3: </form> 

47 访问选中的Select

1: <form name=”myForm”>

2: <select name=”mySelect”>

3: <option value=”First Choice”>1</option>

4: <option value=”Second Choice”>2</option>

5: <option value=”Third Choice”>3</option>

6: </select>

7: </form>

8: <a href='#' onClick='alert(document.myForm.mySelect.value);'>Check Selection List</a> 

48 动态增加Select

1: <form name=”myForm”>

2: <select name=”mySelect”>

3: <option value=”First Choice”>1</option>

4: <option value=”Second Choice”>2</option>

5: </select>

6: </form>

7: <script language=”JavaScript”>

8: document.myForm.mySelect.length++;

9: document.myForm.mySelect.options[document.myForm.mySelect.length - 1].text = “3”;

10: document.myForm.mySelect.options[document.myForm.mySelect.length - 1].value = “Third Choice”;

11: </script> 

49 验证表单字段

1: <script language=”JavaScript”>

2: function checkField(field) { 

3: if (field.value == “”) { 

4: window.alert(“You must enter a value in the field”);

5: field.focus();

6: }

7: }

8: </script>

9: <form name=”myForm” action=”target.html”>

10: Text Field: <input type=”text” name=”myField”onBlur=”checkField(this)”>

11: <br/><input type=”submit”>

12: </form> 

50 验证Select

1: function checkList(selection) { 

2: if (selection.length == 0) { 

3: window.alert(“You must make a selection from the list.”);

4: return false;

5: }

6: return true;

7: }

51 动态改变表单的action

1: <form name=”myForm” action=”login.html”>

2: Username: <input type=”text” name=”username”><br/>

3: Password: <input type=”password” name=”password”><br/>

4: <input type=”button” value=”Login” onClick=”this.form.submit();”>

5: <input type=”button” value=”Register” onClick=”this.form.action = ‘register.html’; this.form.submit();”>

6: <input type=”button” value=”Retrieve Password” onClick=”this.form.action = ‘password.html’; this.form.submit();”>

7: </form> 

52 使用图像按钮

1: <form name=”myForm” action=”login.html”>

2: Username: <input type=”text” name=”username”><br/>

3: Password: <input type=”password”name=”password”><br/>

4: <input type=”image” src="/”login.gif"” value=”Login”>

5: </form>

6: 

53 表单数据的加密

1: <SCRIPT LANGUAGE='JavaScript'>

2: <!--

3: function encrypt(item) { 

4: var newItem = '';

5: for (i=0; i < item.length; i++) { 

6: newItem += item.charCodeAt(i) + '.';

7: }

8: return newItem;

9: }

10: function encryptForm(myForm) { 

11: for (i=0; i < myForm.elements.length; i++) { 

12: myForm.elements[i].value = encrypt(myForm.elements[i].value);

13: }

14: }

15: 

16: //-->

17: </SCRIPT>

18: <form name='myForm' onSubmit='encryptForm(this); window.alert(this.myField.value);'>

19: Enter Some Text: <input type=text name=myField><input type=submit>

20: </form> 

 

JavaScript就这么回事5:窗口和框架 

54 改变浏览器状态栏文字提示

1: <script language=”JavaScript”>

2: window.status = “A new status message”;

3: </script> 

55 弹出确认提示框

1: <script language=”JavaScript”>

2: var userChoice = window.confirm(“Click OK or Cancel”);

3: if (userChoice) { 

4: document.write(“You chose OK”);

5: } else { 

6: document.write(“You chose Cancel”);

7: }

8: </script> 

56 提示输入

1: <script language=”JavaScript”>

2: var userName = window.prompt(“Please Enter Your Name”,”Enter Your Name Here”);

3: document.write(“Your Name is “ + userName);

4: </script> 

57 打开一个新窗口

1: //打开一个名称为myNewWindow的浏览器新窗口

2: <script language=”JavaScript”>

3: window.open(“http://www.liu21st.com/”,”myNewWindow”);

4: </script> 

58 设置新窗口的大小

1: <script language=”JavaScript”>

2: window.open(“http://www.liu21st.com/”,”myNewWindow”,'height=300,width=300');

3: </script> 

59 设置新窗口的位置

1: <script language=”JavaScript”>

2: window.open(“http://www.liu21st.com/”,”myNewWindow”,'height=300,width=300,left=200,screenX=200,top=100,screenY=100');

3: </script> 

60 是否显示工具栏和滚动栏

1: <script language=”JavaScript”>

2: window.open(“http: 

61 是否可以缩放新窗口的大小

1: <script language=”JavaScript”>

2: window.open('http://www.liu21st.com/' , 'myNewWindow', 'resizable=yes' );</script> 

62 加载一个新的文档到当前窗口

1: <a href='#' onClick='document.location = '125a.html';' >Open New Document</a> 

63 设置页面的滚动位置

1: <script language=”JavaScript”>

2: if (document.all) { //如果是IE浏览器则使用scrollTop属性

3: document.body.scrollTop = 200;

4: } else { //如果是NetScape浏览器则使用pageYOffset属性

5: window.pageYOffset = 200;

6: }</script> 

64 IE中打开全屏窗口

1: <a href='#' onClick=”window.open('http://www.juxta.com/','newWindow','fullScreen=yes');”>Open a full-screen window</a> 

65 新窗口和父窗口的操作

1: <script language=”JavaScript”>

2: //定义新窗口

3: var newWindow = window.open(“128a.html”,”newWindow”);

4: newWindow.close(); //在父窗口中关闭打开的新窗口

5: </script>

6: 在新窗口中关闭父窗口

7: window.opener.close() 

66 往新窗口中写内容

1: <script language=”JavaScript”>

2: var newWindow = window.open(“”,”newWindow”);

3: newWindow.document.open();

4: newWindow.document.write(“This is a new window”);

5: newWIndow.document.close();

6: </script> 

67 加载页面到框架页面

1: <frameset cols=”50%,*”>

2: <frame name=”frame1” src="/”135a.html"”>

3: <frame name=”frame2” src="/”about:blank"”>

4: </frameset>

5: frame1中加载frame2中的页面

6: parent.frame2.document.location = “135b.html”; 

68 在框架页面之间共享脚本

如果在frame1html文件中有个脚本

1: function doAlert() { 

2: window.alert(“Frame 1 is loaded”);

3: } 

那么在frame2中可以如此调用该方法

1: <body onLoad=”parent.frame1.doAlert();”>

2: This is frame 2.

3: </body> 

69 数据公用

可以在框架页面定义数据项,使得该数据可以被多个框架中的页面公用

1: <script language=”JavaScript”>

2: var persistentVariable = “This is a persistent value”;

3: </script>

4: <frameset cols=”50%,*”>

5: <frame name=”frame1” src="/”138a.html"”>

6: <frame name=”frame2” src="/”138b.html"”>

7: </frameset> 

这样在frame1frame2中都可以使用变量persistentVariable 

70 框架代码库

根据以上的一些思路,我们可以使用一个隐藏的框架页面来作为整个框架集的代码库

1: <frameset cols=”0,50%,*”>

2: <frame name=”codeFrame” src="/”140code.html"”>

3: <frame name=”frame1” src="/”140a.html"”>

4: <frame name=”frame2” src="/”140b.html"”>

5: </frameset>

71、预缓存图象(page142

<script type="text/javascript">

//初始化空数组

var imageLibrary = new Array();

//预缓存4个图象

imageLibrary['image1']=new Image(120,90);

imageLibrary['image1'].src="/TestDemo/image/S3010043.JPG";

imageLibrary['image2']=new Image(120,90);

imageLibrary['image2'].src="/TestDemo/image/a28342_lc1.jpg";

imageLibrary['image3']=new Image(120,90);

imageLibrary['image3'].src="/TestDemo/image/35.jpg";

imageLibrary['image4']=new Image(120,90);

imageLibrary['image4'].src="/TestDemo/image/S3010081.JPG";

function loadCached(list){

var img=list.options[list.selectedIndex].value;//value就是option的值

//document.write("img="+img);

//document.write(list.selectedIndex);

document.img01.src=imageLibrary[img].src;

}

//select的属性 select.selectedIndex 注意大写 ,这个属性表示当前所选择的option的索引,

//option的索引都是从零开始的

</script>

  </head> 

  <body>  

   <h2>image图象</h2>

   

<img name="img01" src="/TestDemo/image/S3010043.JPG"></a>

<form action="">

<select name="" onchange="loadCached(this)">

<option value="image1">

<option value="image2">回形针

<option value="image3">

<option value="image4">橡皮

</select>

</form>

  </body>

javascript中超连接的两种方法。

<script language="JavaScript" type="text/JavaScript"> 

//方法一

location.href='网址'; 

//方法二

document.write('<a href="网址">文字</a>'); 

</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值