PDA

View Full Version : JAVASCRIPT..!


GiangHo_LangLe
07-08-2003, 09:03
JavaScript dể dùng và không khó học :
Giữa JavaScript và Java không có sự liên hệ hay có họ hàng qua lại. Tuy rằng chúng có cái tên hao hao giống nhau nhưng thực ra chúng khác nhau rất nhiều. Java là một ngôn ngữ biên tập (complied) và có thể chạy độc lập như những ngôn ngữ khác như C, C++ và Visual Basic... còn JavaScript lại là một ngôn ngữ phiên dịch (interpreted) và không thể chạy riêng một mình.

"Ngôn ngữ biên tập" có nghĩa là mã trình (source code) của chương trình được dịch thành ngôn ngữ máy (chuyển thành những số 0 và 1) trước khi sử dụng. Khi cần chương trình này, máy điện toán sẽ sử dụng bản mã đã biên tập thay vì bản mã nguyên thủy. Chỉ khi nào bạn là thao chương viên thì bạn mới có dịp nhìn thấy mã trình của chương trình bạn viết hay dùng.

"Ngôn ngữ phiên dịch" có nghĩa là khi trang mạng có phần script được browser gọi xuống máy, mã trình này mới được bộ phận dịch của browser dịch thành ngôn ngữ máy và chứa trong bộ nhớ của browser để chạy từng phần hay toàn phần tùy theo nhu cầu.

Javascript dể dùng hơn một số các ngôn ngữ khác vì có nhiều tỷ dụ trên liên mạng và vì chỉ giới hạn dùng vào một số công việc trong browser. Bạn chỉ cần dùng phần "View Source" của browser là có thể đọc được mã trình kèm theo trong trang mạng.

JavaScript có thể được viết và hoàn tất nhanh chóng vì bạn có thể thay đổi và thử kết quả tại chỗ tức thời. Khi viết và thử bạn có thể dùng NotePad hay phần mềm xử lý text khác (phải là plain text) để viết JavaScript và mở ngay trang đó trong browser để xem kết quả. Nếu có sửa mã thì chỉ cần bấm nút "reload/ refresh" là có thể thấy kết quả thay đổi ngay.

Làm sao browser biết đó là JavaScript?

JavaScript phải được viết trong cặp tag <script...> </script> hoặc trong cùng hàng với tag HTML. JavaScript trong cặp tag <script...> </script> cũng nên được viết trong tag bị chú HTML <!-- --> hay tag bị chú JavaScript //.

Thường thì bạn sẽ gặp hình thức JavaScript như sau:


Quote:

<script language="JavaScript">
<!-- Lời ghi chú của thảo chương viên vv...

Mã trình JavaScript được viết từ đây...

// Lời ghi chú của thảo chương viên nếu có ... -->

</script>



Phần [language="JavaScript"] không thực sự cần lắm. Tuy nhiên tập thành thói quen đánh thêm phần này vào thì cũng tốt vì ngoài JavaScript chúng ta sẽ còn gặp những loại ngôn ngữ script khác như "vbscript" hay "jscript" (Javascript do Netscape thiết lập). Ghi rõ phần thuộc về ngôn ngữ nào sẽ giúp cho browser biết chúng ta đang sử dụng loại ngôn ngữ script nào.

Nếu không đánh phần tag bị chú HTML " <!--" và " -->" (tag đầu và tag cuối), browser sẽ có thể trình bày JavaScript như text thường - điều này có thể không còn đúng đối với những browser mới nhưng đối với browser cũ và đặc biệt là browser không hiểu JavaScript thì vẫn rất đúng.

Bộ máy dịch JavaScript sẽ không làm gì đối với những gì được viết sau tag bị chú "//" và bạn có thể viết bất cứ điều gì sau tag này như ghi chú về bản quyền, ngày tháng lập trình vv...

Tag // được dùng bị chú cho một hàng chữ trong JavaScript.

Cặp tag <!-- và --> được dùng bị chú cho nhiều hàng trong HTML và tất cả những gì được để trong cặp tag này đều không được xem là HTML và chỉ có JavaScript hiểu nó mà thôi.

Tag // này không cần có tag đóng như những tag khác.

Ðôi khi bạn cũng có thể gặp mã trình JavaScript trong tag HTML, ví dụ:


Quote:

<a href="somedomain.com"
onMouseover="do_function()"

onMouseout="do_xfunction()">

<img ...>

</a>



Mã trình JavaScript cũng thường xuất hiện trong các tag HTML <body...> và <input...>. Ví dụ:


Quote:

<body onLoad="do_function()">


và ví dụ trong <input...> tag:


Quote:

<input type="submit" onClick="do_function()">


Sở dĩ những browser không hiểu JavaScript nhưng vẫn chạy bình thường khi đụng phải JavaScript trong Html tag là vì chúng được thảo trình cho phép làm lơ đối với những gì trong tag mà chúng không hiểu.

GiangHo_LangLe
07-08-2003, 09:04
JavaScript làm việc như sau
Khi một người nào đó thăm viếng một trang mạng thì trang mạng đó được nạp vào trong browser và Html được chuyển đổi thành những gì bạn nhìn thấy trên màng hình.

Nếu browser có khả năng xử lý JavaScript thì các hàng mã trình JavaScript sẽ được phiên dịch và chấp hành. Bạn sẽ nhìn thấy những hiệu năng do JavaScript tạo ra và trình bày trên trang mạng đó.

Tuy rằng tất cả các mã trình JavaScript đều được phiên dịch trong khi trang mạng được nạp vào browser nhưng chỉ có một số mã được chấp hành liền.

Những hàng JavaScript được viết cùng hàng với Html chỉ được chấp hành khi nối (link) hay một phần tử của form được kích động như khi con chuột chạy trên một nối (link) trong thí dụ trước. Function chỉ được chấp hành khi có hàng mã trình gọi đến nó

GiangHo_LangLe
07-08-2003, 09:06
Một số căn bản về thảo trình:
Nên để mã trình JavaScript ở đâu:

JavaScript được đặt trên tag <body...> sẽ được phiên dịch và chấp hành trước khi tag Html được nạp vào trang mạng. JavaScript được đặt dưới tag <body...> sẽ được dịch và chấp hành cùng lúc với trang HTML đang được chuyển hóa.

Những mã trình JavaScript bắt buộc phải đặt trước tag <body...> là những mã cần được chấp hành trước khi trang mạng hoàn tất nạp như mã cần dùng xác định loại browser mà người dùng sử dụng.

Những function được gọi trong tag <body...>

Mã trình JavaScript cần được đặt dưới tag <body...> là những mã dùng cho việc điều chỉnh các phần tử thị khiếu như chữ hay hình ảnh.

Thường thì việc đặt mã trình trên hay dưới tag <body...> không quan trọng. Tuy nhiên nhiều thảo chương viên vẫn ưa chuộng chọn dùng mã ở vị trí phía trên vì dễ nhìn thấy khi tất cả các mã trình JavaScript đều được đặt ở phía trên và ở cùng một chỗ.

GiangHo_LangLe
07-08-2003, 09:07
Làm sao tạo cho chương trình biết nhớ sự việc?
Bạn có thể chỉ định những việc mà chương trình JavaScript phải nhớ và sau này bạn có thể sử dụng những thứ đó khi cần đến. Muốn chứa sự việc trong bộ nhớ để sử dụng sau này thì cần có một cái tên đặt cho điểm nhớ đó để có thể dùng nó sau này. Tên này được gọi là biến số (variable) vì nội dung của điểm nhớ có thể thay đổi sau này.

Ðể tuyên bố sự hiện diện của một biến số và đặt cho nó một cái tên, bạn đánh hàng chữ như sau:

var myNum

và như vậy là một biến số có tên myNum đã được tạo ra để chứa sự kiện trong bộ nhớ.

Ðể chứa một cái gì đó trong điểm nhớ đó, bạn đánh hàng chữ như:

myNum = 8;

và số 8 được chứa trong điểm nhớ có tên là myNum.

Bạn cũng có thể gôm lại hai hàng trên thành một hàng sau đây:

var myNum = 8;

Tuy nhiên một khi đã tuyên bố một biến số rồi thì không được tuyên bố lại. Nếu sau này bạn muốn thay đổi nội dung của biến số đó bạn có thể làm như sau:

myNum = 4;

Ðể sử dụng những gì mà bạn chứa trong biến số bạn có thể thể hiện nó nó ra trên trang mạng để trình bày hoặc chỉ định nó cho một biến số khác. Ðể thể hiện nó bạn đánh hàng chữ:

document.write(myNum);

và sau khi phiên dịch và chấp hành hàng chữ đó sẽ cho ra trị số "8" trên trang mạng. Nguyên văn của mã đó như sau:


Quote:

<script language="JavaScript">
<!--

var myNum = 8;

document.write(myNum);

// -->

</script>



Ðặt mã trình trên dưới phần tag < body> của một trang mạng và bạn sẽ thấy nó in ra chữ số 8. Sở dĩ để dưới phần tag <body> là vì script này thực sự viết một cái gì đó vào trong trang mạng và đó là số 8. Nếu bạn để nó ở phần trên tag <body> thì một số browser sẽ phản đối ngay.

Cách sử dụng chữ:
Chuỗi hay xâu chữ (Strings) cần được đặt trong ngoặc kép (") hoặc ngoặc đơn (').

Không cần biết bạn dùng chữ gì, chữ đó bắt buộc phải có dấu ngoặc đặt trước và sau nó.

Nếu bạn có một hai dấu phẩy trên trong xâu chữ thì việc dùng ngoặc để chứa xâu chữ là hợp lý dể hiểu như:

"I'm cool."

Ngược lại nếu bạn có một hoặc hai dấu ngoặc trong xâu chữ thì nên bao nó lại bằng dấu ngoặc như sau:

'She said, "I am cool".'

Trong trường đặt biệt như bạn vừa có dấu ngoặc vừa có dấu phẩy trên trong một xâu chữ thì bạn nên dùng gạch chéo ngược trước mỗi chữ như sau:

He said, "I'm hot."

có thể viết thành:

'He said, "I\'m hot."'

hoặc để trong ngoặc:

"He said, \"I'm hot.\""

Dấu gạch chéo ngược \ báo cho máy phiên dịch của browser biết phải dịch chữ theo sau \ thành đúng chữ đó. Sau khi dịch đúng chữ đó thì browser sẽ xóa bỏ dấu chéo ngược \.

Nếu bạn muốn dùng dấu chéo ngược trong một xâu chữ thì bạn phải đánh 2 dấu chéo ngược liên tiếp như \\.

Bạn có thể thử JavaScript sau đây:


Quote:

<script language="JavaScript">
<!--

var remark = 'He said, "I\'m hot."';

document.write(remark);

// -->

</script>

GiangHo_LangLe
07-08-2003, 09:09
Căn Bản về function
Khác với những ngôn ngữ thảo chương khác, JavaScript có thể viết theo từng phần và để rải rác các nơi. Nó có thể nằm rải rác trong các tag Html trong một trang mạng miễn sao mã trình tuân theo một số qui luật của ngôn ngữ của nó.

Tìm hiểu và sử dụng các qui luật của ngôn ngữ JavaScript là mục đích của bài tự học này. Sau đây phần tự học sẽ hướng dẫn các bạn:

Sử dụng hay gọi các function


Code:

Thiết lập function riêng của bạn




Function JavaScript là một khối mã (có chứa một hay nhiều hàng mã trình JavaScript trong một nhóm) có một cái tên.

Ngôn ngữ JavaScript gồm có nhiều functions có sẵn được gọi là built-in function. Bạn cũng có thể tự viết function của bạn.

"Netscape JavaScript Reference" và "Netscape - Client-Side JavaScript Guide" chứa nhiều danh mục built-in functions.

Các bài thí dụ trong bài tự học này sẽ sử dụng tối đa built-in function alert()

Sử dụng hay gọi các functions
Khi gọi một function browser sẽ chạy và dịch các hàng mã trong function. Dù là function built-in hay function do bạn tự viết đều phải được gọi ra bằng cách đánh tên function vào mã bạn đang viết.

Tên function luôn luôn bao gồm một cặp ngoặc được đặt sau tên nó. Có thể có hoặc không có gì viết giữa hai dấu ngoặc đó.

Nếu bạn muốn gửi data vào function khi gọi nó thì để data trong ngoặc như ví dụ sau:

alert("Hello everybody!"

là một function alert (cảnh báo) để trình bày một cửa sổ với hàng chữ: Hello everybody!

Nếu có trên một đơn vị data phải gửi đi thì dùng dấu phẩy để ngăn cách chúng. Một đơn vị data có thể là số (number) hay xâu chữ (string) và nếu là xâu chữ thì phải để nó trong ngoặc đơn hay ngoặc kép.

Nếu bạn gửi nhiều data hơn là function cần dùng thì phần dư ra sẽ bị làm lơ. function alert() chỉ cần một đơn vị data cho nên nếu gửi kèm theo trên một đơn vị data như:

alert("Hello everybody!","extra"

thì chỉ có phần đầu là được trình bày trong hộp cảnh giác: Hello everybody!

Ngược lại nếu đơn vị data bạn gửi đi ít hơn số lượng function đòi hỏi thì function sẽ giả định phần thiếu còn lại là không được xác định (undefined). Làm phép tính với cái gì không được xác định thì thường tạo ra tin báo sai (error message) và in ra cái gì không được xác định cũng thường tạo ra chữ "undefined". Ví dụ:

alert();

sẽ trình bày khung cảnh giác với chữ: undefined

Muốn tìm biết function built-in cần bao nhiêu đơn vị data bạn có thể tra tìm văn kiện hay mô phỏng cách làm của người khác đã dùng qua nó. Cách thứ nhất thì chắc chắn sẽ cho ra đúng kết quả còn cách thứ hai thì nhanh hơn mà kết quả cũng khá đủ cho những gì ta cần.

Sau đây là nối (links) đến các văn kiện tham khảo về JavaScript: http://search.netscape.com/Computers/Programming/Languages/JavaScript/References

Cách tự viết function của bạn
Ðây là một bản mẫu function:

function lala() {
alert("This is function lala() speaking!";
}

Hàng đầu của function bao giờ cũng bắt đầu bằng chữ function rồi một khoảng trống rồi tên bạn đặt cho function. Dấu ngoặc { có thể để cùng hàng hay cho xuống hàng.

Theo sau sẽ là những hàng mã do bạn lập ra để chạy khi function được gọi đến và ngay sau hàng mã cuối sẽ là dấu ngoặc đóng }.

Tên của function theo thí dụ trên là: lala()

Phần nằm giữa hai dấu ngoặc { } trong thí dụ trên chỉ có một function built-in alert. Do đó khi bạn gọi function lala() thì một khung cảnh giác xuất hiện với hàng chữ:

This is function lala() speaking!

Bạn có thể gọi function lala() trong neo nối (anchor link) như :

<a href="javascript:lala()">Gõ vào đây</a>

Bạn lưu ý về cách mách cho browser biết đây là một nối (link) đi kèm với Javascript function chứ không phải là một URL thường.

hoặc bạn có thể gọi function qua một nút bấm như sau:

<form>
<input type="button" value="Click!" onClick="lala()">
</form>

Vì "onClick" là một mã JavaScript nên browser biết lala() là một JavaScript function và khi nó không tìm thấy một function nào có cái tên đó thì nó sẽ tìm function do bạn tạo ra.

Những function của bạn có thể gọi những function có sẵn (built-in) và chúng cũng có thể gọi những function khác do bạn viết ra.

function example() {
alert('Here!');
lala();
alert('Back to you...');
}

Khi bạn gọi function example() , nó sẽ trình bày một khung cảnh giác với chữ: Here!

rồi nó gọi function lala() của của bạn, function này cho ra khung có hàng chữ:

This is function lala() speaking!

và sau đó thì nó trình bày một khung cảnh giác với hàng chữ: Back to you...

Khả năng gọi được những function khác từ bên trong function do bạn tự viết có rất nhiều lợi thế.



CoolDude
Join it with me ...


Giới tính: Nam
Quốc Gia:: Canada
Ðăng ký:: Jan 2003
Hiệu:: Offline
Gửi: 478

--------------------------------------------------------------------------------
Posted Monday, July 7, 2003 @ 06:32:09

Cool! HVX có đoạn viết trên hay đấy!
Javacript - hay ai đó gọi là ngôn ngữ phiên dịch - chẳng biết gọi thế nào cho dễ hiểu - nên tạm đồng ý với thuật ngữ đó.

Scripting langguage ->>>>> ngôn ngữ phiên dịch (????) - có 2 loại

- client side --- dịch trên browser
- server side --- dịch tại server rồi chuyển tới cho Browser và nều cần thì browser dịch lại lần nữa

GiangHo_LangLe
07-08-2003, 09:10
trên đây là những chỉ dẫn tỉ mĩ ,còn mấy bạn muốn nhanh gọn thì vào đây: http://go.to/jslib.

cackehoa
21-08-2003, 01:16
Hay thật, GiangHo_LangLe có thể cho mình một đoạn mã JavaScript không, mình muốn có một đoạn mã JavaScript để dùng cho hệ phục vụ của mình là ASP.
Ban đầu mình tạo một trang HTML:
[code:1:961f515806]
<html>
<head>
<script language="JavaScript">
//Nói chung ở đây được sữ lý rồi và chuyển cho hệ phục vụ ASP
</script>
<title>Thử tí chơi</title>
<head>
<bode>
<h1>Nhập tý chơi</h1>
<p>Nhập họ và tên: <input id="txtHoTen" name="txtHoTen"></p>
</bode>
</html>
[/code:1:961f515806]
GiangHo_LangLe có thể viết cho mình một đoạn code hệ phục vụ ASP để mình có thể hiện tên mà người sữ dụng nhập vào được không? Ví dụ trên trang web mình chỉ cần hiện:
[code:1:961f515806]GiangHo_LangLe[/code:1:961f515806]
mà không phải là dùng hide nha.

Cảm ơn bạn trước! Thân!