Cách tách HTML, CSS và JavaScript

Khi bạn lần đầu tiên viết một JavaScript mới, cách dễ nhất để thiết lập nó là nhúng mã JavaScript trực tiếp vào trang web để mọi thứ ở một nơi trong khi bạn kiểm tra để nó hoạt động bình thường. Tương tự, nếu bạn đang chèn một tập lệnh viết sẵn vào trang web của mình, các hướng dẫn có thể yêu cầu bạn nhúng một phần hoặc toàn bộ tập lệnh vào chính trang web đó

Điều này không sao để thiết lập trang và làm cho trang hoạt động bình thường ngay từ đầu nhưng khi trang của bạn hoạt động theo cách bạn muốn, bạn sẽ có thể cải thiện trang bằng cách trích xuất JavaScript vào một tệp bên ngoài để trang của bạn

Nếu bạn chỉ sao chép và sử dụng JavaScript do người khác viết thì hướng dẫn của họ về cách thêm tập lệnh của họ vào trang của bạn có thể dẫn đến việc bạn có một hoặc nhiều phần JavaScript lớn thực sự được nhúng vào chính trang web của bạn và hướng dẫn của họ không cho biết . Mặc dù vậy, đừng lo lắng vì bất kể mã JavaScript bạn đang sử dụng trong trang của mình là gì, bạn có thể dễ dàng di chuyển JavaScript ra khỏi trang của mình và thiết lập nó dưới dạng một tệp riêng biệt (hoặc các tệp nếu bạn có nhiều đoạn JavaScript được nhúng trong . Quy trình thực hiện việc này luôn giống nhau và được minh họa rõ nhất bằng một ví dụ

Hãy xem một đoạn mã JavaScript có thể trông như thế nào khi được nhúng vào trang của bạn. Mã JavaScript thực tế của bạn sẽ khác với mã được hiển thị trong các ví dụ sau nhưng quy trình này giống nhau trong mọi trường hợp

Ví dụ Một




Ví dụ Hai




Ví dụ Ba




JavaScript nhúng của bạn sẽ trông giống như một trong ba ví dụ trên. Tất nhiên, mã JavaScript thực tế của bạn sẽ khác với mã được hiển thị nhưng JavaScript có thể sẽ được nhúng vào trang bằng một trong ba phương pháp trên. Trong một số trường hợp, mã của bạn có thể sử dụng language="javascript" đã lỗi thời thay vì type="text/javascript" trong trường hợp đó, bạn có thể muốn cập nhật mã của mình hơn để bắt đầu bằng cách thay thế thuộc tính language bằng thuộc tính type one

Trước khi bạn có thể trích xuất JavaScript thành tệp riêng của mình, trước tiên bạn cần xác định mã sẽ được trích xuất. Trong cả ba ví dụ trên, có hai dòng mã JavaScript thực tế được trích xuất. Tập lệnh của bạn có thể sẽ có nhiều dòng hơn nhưng có thể được xác định dễ dàng vì nó sẽ chiếm cùng một vị trí trong trang của bạn với hai dòng JavaScript mà chúng tôi đã đánh dấu trong ba ví dụ trên (cả ba ví dụ đều chứa hai dòng giống nhau

  1. Điều đầu tiên bạn cần làm để thực sự trích xuất JavaScript thành một tệp riêng biệt là mở trình soạn thảo văn bản thuần túy và truy cập nội dung trang web của bạn. Sau đó, bạn cần xác định vị trí JavaScript được nhúng sẽ được bao quanh bởi một trong các biến thể của mã được hiển thị trong các ví dụ trên
  2. Sau khi xác định được mã JavaScript, bạn cần chọn mã đó và sao chép mã đó vào khay nhớ tạm của mình. Với ví dụ trên, mã cần chọn được tô sáng, bạn không cần chọn các thẻ script hoặc các chú thích tùy chọn có thể xuất hiện xung quanh mã JavaScript của bạn
  3. Mở một bản sao khác của trình soạn thảo văn bản thuần túy của bạn (hoặc một tab khác nếu trình soạn thảo của bạn hỗ trợ mở nhiều tệp cùng lúc) và dán nội dung JavaScript vào đó
  4. Chọn tên tệp mô tả để sử dụng cho tệp mới của bạn và lưu nội dung mới bằng tên tệp đó. Với mã ví dụ, mục đích của tập lệnh là ngắt khung để có thể đặt tên thích hợp là phá khung. js
  5. Vì vậy, bây giờ chúng tôi có JavaScript trong một tệp riêng biệt, chúng tôi quay lại trình chỉnh sửa nơi chúng tôi có nội dung trang gốc để thực hiện các thay đổi ở đó để liên kết với bản sao bên ngoài của tập lệnh
  6. Vì bây giờ chúng tôi có tập lệnh trong một tệp riêng biệt, chúng tôi có thể xóa mọi thứ giữa các thẻ tập lệnh trong nội dung gốc của mình để thẻ
  7. Bước cuối cùng là thêm một thuộc tính bổ sung vào thẻ script xác định nơi nó có thể tìm thấy JavaScript bên ngoài. Chúng tôi thực hiện việc này bằng thuộc tính src="filename" . Với tập lệnh ví dụ của chúng tôi, chúng tôi sẽ chỉ định src="framebreak. js"
  8. Điều phức tạp duy nhất đối với điều này là nếu chúng tôi đã quyết định lưu trữ JavaScript bên ngoài trong một thư mục riêng biệt với các trang web sử dụng chúng. Nếu bạn làm điều này thì bạn cần thêm đường dẫn từ thư mục trang web đến thư mục JavaScript phía trước tên tệp. Ví dụ: nếu JavaScript đang được lưu trữ trong thư mục js trong thư mục chứa các trang web của chúng tôi, chúng tôi sẽ cần src="js/framebreak. js"

Vậy mã của chúng ta trông như thế nào sau khi chúng ta tách JavaScript ra thành một tệp riêng biệt?


Chúng tôi cũng có một tệp riêng gọi là framebreak. js có chứa

if (top.location != self.location) top.location = self.location;

Tên tệp và nội dung tệp của bạn sẽ khác rất nhiều so với tên đó vì bạn sẽ trích xuất bất kỳ JavaScript nào được nhúng trong trang web của mình và đặt cho tệp một tên mô tả dựa trên chức năng của nó. Quá trình giải nén thực tế sẽ giống nhau bất kể nó chứa những dòng nào.

Còn hai dòng khác trong mỗi ví dụ hai và ba thì sao? . Việc đặt mã trong một tệp bên ngoài sẽ ẩn mã khỏi các trình duyệt không hiểu thẻ tập lệnh hiệu quả hơn là đặt mã đó trong một nhận xét HTML. Ví dụ thứ ba được sử dụng cho các trang XHTML để thông báo cho trình xác thực rằng JavaScript phải được coi là nội dung trang và không xác thực nó dưới dạng HTML (nếu bạn đang sử dụng loại tài liệu HTML thay vì XHTML thì trình xác thực đã biết điều này và vì vậy các thẻ đó . Với JavaScript trong một tệp riêng biệt, không còn bất kỳ JavaScript nào trong trang bị trình xác thực bỏ qua và vì vậy những dòng đó không còn cần thiết nữa

Một trong những cách hữu ích nhất mà JavaScript có thể được sử dụng để thêm chức năng vào trang web là thực hiện một số loại xử lý để phản hồi hành động của khách truy cập của bạn. Hành động phổ biến nhất mà bạn muốn phản hồi sẽ là khi khách truy cập đó nhấp vào thứ gì đó. Trình xử lý sự kiện cho phép bạn phản hồi khi khách truy cập nhấp vào thứ gì đó được gọi là onclick

When most people first think about adding an onclick event handler to their web page they immediately think of adding it to an tag. This gives a piece of code that often looks like:


Đây là cách sử dụng onclick sai trừ khi bạn có một địa chỉ thực sự có ý nghĩa trong thuộc tính href để những địa chỉ không có JavaScript sẽ được chuyển đến một nơi nào đó khi họ nhấp vào liên kết. Nhiều người cũng bỏ qua "return false" từ mã này và sau đó tự hỏi tại sao phần trên cùng của trang hiện tại luôn được tải sau khi tập lệnh chạy (đó là điều mà href="#" yêu cầu trang thực hiện trừ khi . Tất nhiên, nếu bạn có thứ gì đó có ý nghĩa làm đích đến của liên kết thì bạn có thể muốn đến đó sau khi chạy mã onclick và sau đó bạn sẽ không cần "return false"

Điều mà nhiều người không nhận ra là trình xử lý sự kiện onclick có thể được thêm vào bất kỳ thẻ HTML nào trên trang web để tương tác khi khách truy cập của bạn nhấp vào nội dung đó. Vì vậy, nếu bạn muốn thứ gì đó chạy khi mọi người nhấp vào hình ảnh, bạn có thể sử dụng

Cách tách HTML, CSS và JavaScript

Nếu bạn muốn chạy một cái gì đó khi mọi người nhấp vào một số văn bản, bạn có thể sử dụng

some text

Tất nhiên, những điều này không đưa ra manh mối trực quan tự động rằng sẽ có phản hồi nếu khách truy cập của bạn nhấp vào chúng theo cách mà một liên kết thực hiện nhưng bạn có thể tự thêm manh mối trực quan đó đủ dễ dàng bằng cách tạo kiểu cho hình ảnh hoặc khoảng cách phù hợp

Một điều khác cần lưu ý về những cách đính kèm trình xử lý sự kiện onclick này là chúng không yêu cầu "return false" vì không có hành động mặc định nào sẽ xảy ra khi nhấp vào phần tử cần phải tắt

Những cách đính kèm onclick này là một cải tiến lớn đối với phương pháp tồi mà nhiều người sử dụng nhưng vẫn còn lâu mới trở thành cách viết mã tốt nhất. Một vấn đề khi thêm onclick bằng bất kỳ phương pháp nào ở trên là nó vẫn trộn JavaScript của bạn với HTML của bạn. onclick không phải là một thuộc tính HTML, nó là một trình xử lý sự kiện JavaScript. Như vậy, để tách JavaScript của chúng tôi khỏi HTML của chúng tôi để làm cho trang dễ bảo trì hơn, chúng tôi cần chuyển tham chiếu onclick đó ra khỏi tệp HTML thành một tệp JavaScript riêng biệt nơi nó thuộc về

Cách dễ nhất để thực hiện việc này là thay thế onclick trong HTML bằng một id giúp dễ dàng đính kèm trình xử lý sự kiện vào vị trí thích hợp trong HTML. Vì vậy, HTML của chúng tôi hiện có thể chứa một trong những câu lệnh này

________số 8

Sau đó, chúng tôi có thể mã hóa JavaScript trong một tệp JavaScript riêng biệt được liên kết vào cuối phần nội dung của trang hoặc nằm trong phần đầu của trang và nơi mã của chúng tôi nằm trong một chức năng được gọi sau khi trang tải xong. JavaScript của chúng tôi để đính kèm các trình xử lý sự kiện bây giờ trông như thế này

document.getElementById('img1').onclick = dosomething; document.getElementById('sp1').onclick = dosomething;

Một điều cần lưu ý. Bạn sẽ nhận thấy rằng chúng tôi luôn viết onclick hoàn toàn bằng chữ thường. Khi mã hóa câu lệnh trong HTML của họ, bạn sẽ thấy một số người viết nó dưới dạng onClick. Điều này là sai vì tên của trình xử lý sự kiện JavaScript đều là chữ thường và không có trình xử lý nào như onClick. Bạn có thể thoát khỏi nó khi bạn đưa trực tiếp JavaScript vào trong thẻ HTML của mình vì HTML không phân biệt chữ hoa chữ thường và trình duyệt sẽ ánh xạ nó tới tên chính xác cho bạn. Bạn không thể tránh khỏi việc viết sai viết hoa trong chính JavaScript của mình vì JavaScript phân biệt chữ hoa chữ thường và không có thứ gọi là onClick trong JavaScript

Mã này là một cải tiến lớn so với các phiên bản trước bởi vì chúng tôi hiện đang đính kèm sự kiện vào đúng thành phần trong HTML của chúng tôi và chúng tôi có JavaScript hoàn toàn tách biệt với HTML. Chúng tôi có thể cải thiện điều này hơn nữa mặc dù

Một vấn đề còn tồn tại là chúng ta chỉ có thể đính kèm một trình xử lý sự kiện onclick cho một phần tử cụ thể. Nếu bất cứ lúc nào chúng ta cần đính kèm một trình xử lý sự kiện onclick khác vào cùng một phần tử thì quá trình xử lý được đính kèm trước đó sẽ không còn được đính kèm vào phần tử đó nữa. Khi bạn thêm nhiều tập lệnh khác nhau vào trang web của mình cho các mục đích khác nhau, ít nhất có khả năng hai hoặc nhiều tập lệnh trong số đó muốn cung cấp một số xử lý sẽ được thực hiện khi nhấp vào cùng một phần tử. Giải pháp lộn xộn cho vấn đề này là xác định nơi phát sinh tình huống này và kết hợp quá trình xử lý cần được gọi lại với nhau thành một hàm thực hiện tất cả quá trình xử lý

Mặc dù các xung đột như thế này ít phổ biến hơn với onclick so với onload, nhưng việc phải xác định các xung đột trước và kết hợp chúng lại với nhau không phải là giải pháp lý tưởng. Nó hoàn toàn không phải là một giải pháp khi quá trình xử lý thực tế cần được gắn vào phần tử thay đổi theo thời gian để đôi khi có một việc phải làm, đôi khi là một việc khác và đôi khi cả hai

Giải pháp tốt nhất là ngừng hoàn toàn việc sử dụng trình xử lý sự kiện và thay vào đó sử dụng trình xử lý sự kiện JavaScript (cùng với tệp đính kèm tương ứng cho Jscript- vì đây là một trong những tình huống mà JavaScript và JScript khác nhau). Chúng ta có thể thực hiện việc này một cách dễ dàng nhất bằng cách trước tiên tạo một hàm addEvent sẽ thêm trình xử lý sự kiện hoặc tệp đính kèm tùy thuộc vào ngôn ngữ nào trong hai ngôn ngữ mà ngôn ngữ đang chạy hỗ trợ;




0

Bây giờ chúng tôi có thể đính kèm quá trình xử lý mà chúng tôi muốn xảy ra khi phần tử của chúng tôi được nhấp vào bằng cách sử dụng




1

Sử dụng phương pháp đính kèm mã này để được xử lý khi một phần tử được nhấp vào có nghĩa là thực hiện lệnh gọi addEvent khác để thêm một hàm khác được chạy khi một phần tử cụ thể được nhấp vào sẽ không thay thế quá trình xử lý trước đó bằng quá trình xử lý mới mà thay vào đó sẽ cho phép . Khi gọi addEvent ta không cần biết đã có hàm gắn vào phần tử hay chưa để chạy khi click vào thì hàm mới sẽ chạy cùng với các hàm đã gắn trước đó.

Chúng ta có cần khả năng loại bỏ các chức năng khỏi những gì được chạy khi một phần tử được nhấp vào hay không thì chúng ta có thể tạo một hàm deleteEvent tương ứng để gọi hàm thích hợp để xóa trình xử lý sự kiện hoặc sự kiện đính kèm?

Một nhược điểm của cách đính kèm xử lý cuối cùng này là những trình duyệt thực sự cũ không hỗ trợ những cách tương đối mới này để đính kèm xử lý sự kiện vào một trang web. Hiện tại sẽ có ít người sử dụng các trình duyệt lỗi thời như vậy để bỏ qua chúng trong Tập lệnh J(ava) mà chúng tôi viết ngoài việc viết mã theo cách không gây ra số lượng lớn thông báo lỗi. Hàm trên được viết để không làm gì nếu cả hai cách mà nó sử dụng đều không được hỗ trợ. Hầu hết các trình duyệt thực sự cũ này cũng không hỗ trợ phương thức getElementById để tham chiếu HTML và do đó, nếu (. tài liệu. getElementById) trả về sai; . Tất nhiên, nhiều người viết JavaScript không quan tâm đến những người vẫn đang sử dụng các trình duyệt cũ và vì vậy những người dùng đó phải quen với việc nhìn thấy các lỗi JavaScript trên hầu hết mọi trang web họ truy cập bây giờ

Bạn sử dụng cách nào trong số những cách khác nhau này để đính kèm quá trình xử lý vào trang của mình để chạy khi khách truy cập của bạn nhấp vào thứ gì đó?

Khi xem mã cho trình xử lý sự kiện trên nhiều trình duyệt, bạn sẽ nhận thấy rằng có một tham số thứ tư mà chúng tôi gọi là uC, việc sử dụng tham số này không rõ ràng trong phần mô tả trước đó

Browsers have two different orders in which they can process events when the event is triggered. They can work from the outside inwards from the tag in towards the tag that triggered the event or they can work from the inside out starting at the most specific tag. These two are called capture and bubble respectively and most browsers allow you to choose which order multiple processing should be run in by setting this extra parameter.

  • uC = true để xử lý trong giai đoạn chụp
  • uC = false để xử lý trong giai đoạn bong bóng

Vì vậy, khi có một số thẻ khác bao quanh thẻ mà sự kiện đã được kích hoạt trong giai đoạn chụp, trước tiên hãy bắt đầu với thẻ ngoài cùng và di chuyển về phía thẻ đã kích hoạt sự kiện và sau đó khi thẻ được gắn vào sự kiện đã được xử lý

Internet Explorer và các trình xử lý sự kiện truyền thống luôn xử lý giai đoạn bong bóng chứ không bao giờ xử lý giai đoạn chụp, do đó, luôn bắt đầu với thẻ cụ thể nhất và hoạt động dần dần

Vì vậy, với xử lý sự kiện




2

nhấp vào xx sẽ bong bóng kích hoạt cảnh báo ('b') trước và cảnh báo ('a') thứ hai

Nếu những cảnh báo đó được đính kèm bằng trình xử lý sự kiện với uC true thì tất cả các trình duyệt hiện đại ngoại trừ Internet Explorer sẽ xử lý cảnh báo ('a') trước rồi đến cảnh báo ('b')

Trích dẫn bài viết này

Định dạng

mla apa chicago

trích dẫn của bạn

Chapman, Stephen. "Chuyển JavaScript ra khỏi trang web. "ThinkCo. https. //www. suy nghĩ. com/moving-javascript-out-of-the-web-page-2037542 (truy cập ngày 7 tháng 12 năm 2022)

Bạn có thể sử dụng HTML CSS và JavaScript cùng nhau không?

HTML, CSS và JavaScript phối hợp với nhau để tạo thành thiết kế mặt trước của trang web bằng cách áp dụng thông tin ảnh hưởng đến nội dung, phong cách và tính tương tác của trang web.

Tôi có thể viết JavaScript cả trong HTML và dưới dạng một tệp riêng biệt không?

Khi làm việc với các tệp cho web, JavaScript cần được tải và chạy cùng với mã đánh dấu HTML. Điều này có thể được thực hiện nội tuyến trong tài liệu HTML hoặc trong một tệp riêng biệt mà trình duyệt sẽ tải xuống cùng với tài liệu HTML .

Tôi có nên tách JavaScript khỏi HTML không?

Bạn nên đặt mã JS của mình vào một tệp riêng vì điều này giúp kiểm tra và phát triển dễ dàng hơn . Câu hỏi về cách bạn phục vụ mã là một vấn đề khác. Cung cấp HTML và JS riêng biệt có lợi thế là khách hàng có thể lưu vào bộ đệm JS.

Tôi có thể bỏ qua HTML và CSS để học JavaScript không?

Tôi có cần biết HTML và CSS trước khi học JavaScript không? . Tuy nhiên, hiểu biết cơ bản về các ngôn ngữ này sẽ giúp bạn học và sử dụng JavaScript dễ dàng hơn. No, you don't need to know HTML and CSS before learning JavaScript. However, having a basic understanding of these languages will make it easier for you to learn and use JavaScript.