Kiểm tra Javascript có enable hay không
Tutorials, Web February 23rd, 2008Đơn giản bằng cách chèn đoạn code sau vào sự kiện Page_Load
Dòng code check là đây:
Page.ClientScript.RegisterStartupScript(this.GetType(), "redirect","window.location.href='default.aspx?JScript=1';", true);
Nó hoạt động như sau :
- Lần đầu load thì Session["JSChecked"] sẽ là null (dòng 15) nên ta sẽ vào đoạn code trong hàm if thứ nhất. Vào trong hàm if thì gán lại Session["JSChecked"] = “Checked” (dòng 16) để báo là đã check rồi (bạn có thể dùng bất cứ giá trị nào cũng được). Sau đó ta “đăng kí” một đoạn javascript window.location.href …. nhằm mục đích load lại trang này một lần nữa (dòng 19,20)
- Ở đây nếu javascript ko enabled thì bạn sẽ không đăng kí được đoạn script này nên khi QueryString["JScript"] (dòng 23) thì nó sẽ trả về null và kết thúc luôn. Kết quả sẽ là “Javascript is not enabled” (dòng 24).
- Ngược lại, nếu javascript đc enabled thì đoạn script đó sẽ được đăng kí. Lúc này khi QueryString["JScript"] (dòng 23) vẫn có giá trị null. Lúc này kết quả (tạm thời) của bạn sẽ là “Javascript is not enabled” (dòng 24). Tuy nhiên, bạn nên nhớ là đoạn js đó nhằm mục đích load lại trang lần thứ hai nên sự kiện Page_Load được gọi lại lần nữa. Lúc này Session["JSChecked"] (dòng 15) đương nhiên là khác null nên nó sẽ chạy xuống đoạn check if phía dưới (dòng 23):
Đến đây thì QueryString["JScript"] sẽ khác null ! Do đó kết quả cuối cùng là “Javascript is enabled” (dòng 26).
(nhc tổng hợp từ bài viết trên codeproject và một số thông tin tham khảo tại w3schools, msdn, beansoftware)
February 24th, 2008 at 19:06
Cho anh hỏi điều gì sẽ xảy ra nếu sau khi anh nhận được thông báo “Javascript is unenabled” và anh đi bật Javascript lên và load lại trang web? Nó vẫn thông báo “Javascript is unenabled” phải không? Tại sau khi load lần 2, thì Session["JSChecked"] đã # null rồi. Anh không chắc lắm nhưng nhìn code thì anh đoán là như vậy.