Skip navigation.

Log in | Sign up

My little corner on MyOpera

Simple life :)

Posts tagged with "Javascript"

IE message: Operation aborted

, , ,

Few days ago, I assigned a task to fix a problem: IE showed an error message box and crashed when load a heavy page (it took about 40-50s to load completly) .

I thought, maybe cause of problem is Javascript (syntax error) and I checked whole the page. Hix, nothing happened :frown: After I Googled, I found the main reason are:

  1. The HTML file is being parsed

  2. Script is executing

  3. The executing script attempts to add, or remove an element from an unclosed ancestor in the markup tree (not including the script block's immediate parent element).


So I refactored code by move all JS function call into $(document).ready( ... ) (I used jQuery) to make sure the script will be excute after the page loaded successful. whew, the problem has been resolved :smile:

Determining the Number of Days in a Month with Javascript

,

Cuối tuần vừa rồi, bác Cảnh (my leader) có triển khai 1 task cho tôi với nội dung là: "chỉnh lại core của con calendar.js để ngày mặc định khi hiệp popup calendar sẽ là ngày hiện tại cộng một" (dĩ nhiên nếu đã nhập ngày trước đó rồi thì vẫn phải focus đúng).

Rất may là con calendar của tác giả Alf Magne Kalleland đã xử lý việc focus ngày nếu text field đã có giá trị nên việc của tôi lúc này khá nhàn hạ:

- Nếu textfield đã có giá trị rồi thì ko làm gì cả
- Nếu chưa có:
+ Lấy ngày hiện tại & cộng thêm 1 đơn vị
+ Nếu giá trị vừa cộng > tổng số ngày trong tháng hiện tại thì tăng tháng lên 1 đơn vị & ngày hiện tại = 1
+ Nếu tháng vừa cộng > 12 thì tăng năm hiện tại lên 1, ngày & tháng hiện tại = 1

Cái khó ở đây chính việc xác định tổng số ngày trong tháng bằng Javascript. Khó ở đây không phải thuật toán, khó ở đây chỉ đơn giản là làm thế nào để viết...càng ngắn càng tốt.

Nếu làm theo kiểu như trong các sách họp lập trình hoặc trong trường học thì sẽ phải if else (switch case) các tháng 30 ngày (4, 6, 9, 11), tháng có 31 ngày (1, 3, 5, 7, 8, 10, 12) và tháng 2 có 28 ngày (năm nhuận sẽ là 29). Ở đây lại phải xác định năm nhuận là năm như thế nào (chia hết cho 400), dài dòng ghê p:

Đối tượng Date của Javascript cho quá tải tham số date truyền vào & sẽ tự động tính toán số dư ngày thừa ra đó theo ngày hiện tại. Do đó để tính số ngày trong 1 tháng bằng Javascript chỉ cần dùng 1 dòng sau:
function daysInMonth(iMonth, iYear)
{
    return 32 - new Date(iYear, iMonth, 32).getDate();
}

Keke... vậy là task 1 giờ đã được giải quyết trong vòng chưa đầy 5'. Suỵt, bí mật :D

Mirror: http://donamkhanh.com/2009/11/01/determining-the-number-of-days-in-a-month-with-javascript.html

Chuyển file PSD sang (x)HTML

, ,

~~> http://donamkhanh.com/slide-service/

Ngồi buồn làm cái này kiếm thêm miếng cơm manh áo p: Giảm giá 90% cho 10 người đầu tiên đăng ký :whistle:

Joomla 1.5.x remote admin password change

,

1 bug củ có thể nói là làm "bẽ mặt" Joomla team. Không thể ngờ Joomla lại có thể dính 1 lỗi chuối đến như vậy :yikes:

Thử với 1 site sử dụng Joomla version 1.5.2, mất 3 thao tác để vào được khu vực dành cho administrator :eyes:

Việc tiếp theo là thông báo bug cho ông anh admin với lời nhắn nhủ sau này em chụp ảnh cưới thì anh miễn phí cho em nhé - site kinh doanh áo cưới, ảnh cưới mà. Ông ấy đồng ý cái roẹt, sẽ free với điều kiện chú cưới lần 2 :lol: Nham hiểm thế ko biết.

Kinh nghiệm rút ra:
- Khi setup 1 site, sử dụng os, phải bỏ hết các default setting đi.
- Với admin area, nên cho thêm 1 access layer nữa (.htpasswd chẳng hạn).

Opera widget, tại sao không nhỉ?

,

Hôm trước xem bài tutorial này chợt nảy ra ý định tận dụng luôn tính năng Widget vô cùng mạnh mẽ & uyển chuyển của Opera để viết các tiện ích cho Blog Việt (chính xác là cho cộng đồng sử dụng blog Opera p:)

Do cũng quá bận nên tạm thời chỉ viết 1 ứng dụng demo tí xíu dựa trên hướng dẫn của họ + lib base64encode để làm cái mã hóa ký tự :lol: Lúc xem tutorial thấy thằng cha Dev sử dụng Komodo Edit nhìn phê vật vã nên quyết định down về dùng & cảm thấy rất tuyệt. Dùng nó khá nhẹ & hỗ trợ nhiều tính năng hay, ví dụ như các functions cho Drupal (tạo module...)

Thật sự là viết js theo kiểu raw code thế này ngán thật, xài framework quen rồi giờ viết thuần thế này khó quá :frown:

Download: http://donamkhanh.com/4opera/widget/base64Encode.zip
Cách dùng: Download file ở link trên, giải nén file zip. Kéo thả file config.xml vào cửa sổ trình duyệt Opera
Download Opera, the fastest and most secure browser
December 2009
M T W T F S S
November 2009January 2010
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31