Wednesday, November 24, 2010

Cách loại bỏ xung đột giữa hai javascript

Nếu bạn chỉ có một đoạn javascript trên trang web thì trang web của bạn hoạt động tốt. Đôi khi bạn thêm vào một đoạn javascipt khác thì một trong hai đoạn sẽ không hoạt động hoặc cả hai cùng không hoạt động. Nguyên nhân là do sự xung đột giữa 2 đoạn javascript này mà căn nguyên nằm ở sự trùng lặp về xử lý sự kiện (event-handler), đặc biệt là chức năng onload cho thẻ <body>.

Cách xử lý xung đột là kết hợp 2 chức năng onload lại với nhau.

Lấy ví dụ Script #1 có chức năng onload đưa trực tiếp vào thẻ <body> như thế này:

<body onload="dothis()">

Script #2 có chức năng onload nằm ngay trong chính script như thế này:

window.onload=dothat();

Bạn có thể thấy hai script trên đều sử dụng chức năng onload. Vậy cái nào hoạt động được, thường thì cái nằm trong thẻ <body>.

Nếu bạn kết hợp 2 chức năng vào trong thẻ <body> thì bạn sẽ loại bỏ được xung đột. Sau đây là sự kết hợp 2 script nêu trên.

<body onload="dothis();dothat()">

Nếu bạn có nhiều hơn 2 javascript thì cách xử lý tương tự.

Ví dụ 2.

Script 1: <body onload="dothis()">
Script 2: <body onload="dothat()">

Xử lý: <body onload="dothis();dothat()">

Ví dụ 3:

Script 1: window.onload=dothis
Script 2: window.onload=dothat

Xử lý: <body onload="dothis();dothat()">

No comments:

Post a Comment