Wednesday, September 08, 2010

Viewing Category


Javascript

    25

    Hôm nay thấy Joomla sử dụng MooTools nên mình thử tìm hiểu nó, rồi so sánh với jQuery. Thực sự mà nói thì với cả 2 thằng này mình chỉ biết xài. Nghĩa là copy code có sẵn mà thôi.

    Dưới đây là một site mình thấy nó so sánh trực tiếp giữa jQuery và MooTools. Tác giả là 1 MooTools dev và có viết sách về MooTools.

    http://jqueryvsmootools.com/

    [Read the rest of this article...]

    Posted in: Javascript
    08

    Mình dạo này làm nhiều với javascript. Trong quá trình làm, mình chú ý thấy điều sau. Khi gọi 1 event của 1 HTML control, thì hàm xử lý cho sự kiện đó không được xử lý ngay nếu như ta view trên IE.

    Để cho dễ hiểu, mình sử dụng ví dụ sau:

    <html>
    <head>
    <script type="text/javascript">
    function upperCase(x)
    {
    alert('Duc');
    }
    </script>
    </head>
    <body>

    <form action="">
    I have a bike:
    <input type="checkbox" name="vehicle" value="Bike" onchange="upperCase(this.id)">
    <br />
    I have a car:
    <input type="checkbox" name="vehicle" value="Car">
    <br />
    I have an airplane:
    <input type="checkbox" name="vehicle" value="Airplane">
    </form>

    </body>
    </html>

    [Read the rest of this article...]

    Posted in: Javascript
    07

    Mình đang làm cái task có liên quan đến việc tạo các radio button từ javascript. Đại loại là khi click vào 1 button thì nó sinh ra các radio button.  Mày mò thì cũng biết cách làm. Nhưng đến lúc hiển thị trên IE và FF thì gặp vấn đề. Thằng IE nó bị điên rồi. Trên FF, khi select 1 radio nào thì thằng đó được check. Nhưng trên IE thì nó không hề check gì cả.

    Vấn đề này làm mình mất thời gian cả buổi chiều. Ngồi tìm đủ mọi cách. Và cuối cùng, nhờ 1 link sau mà mình đã giải quyết được vấn đề.

    try{  

     rdo = document.createElement('<input type="radio" name="fldID" />');  

    }catch(err){  

     rdo = document.createElement('input');  

     rdo.setAttribute('type','radio');  

     rdo.setAttribute('name','fldID');  

    }  

    Câu lệnh trong try giúp giải quyết được việc tạo element chạy được trên IE và cả FF. Còn phần code trong catch chỉ bảo đảm chạy được trên FF mà thôi. Đến là điên với thằng IE củ chuối. Làm mất thời gian quá.

    Link tham khảo:

    http://cf-bill.blogspot.com/2006/03/another-ie-gotcha-dynamiclly-created.html

    [Read the rest of this article...]

    Posted in: Javascript
    06

    Hôm nay thử đọc blog cto20.com, mình thấy có bài viết giới thiệu về một content slider, Horinaja, trông cũng đẹp nên giới thiệu với mọi người.

    Hiện nay, trên mạng có khá nhiều code javascript hay jquery cho content-slider. Tuy nhiên, so với các code khác, thì Horinaja có 1 điểm khác biệt đó là nó hỗ trợ slide bằng cách dùng chuột. Mình đã thử xem trang demo của nó và thấy khá đẹp. Trên site chính có sẵn source để download. Hướng dẫn của nó cũng chi tiết và đơn giản để làm theo.

    http://davidmassiani.com/horinaja/

    Link tham khảo:

    http://www.cto20.com/post/Horinaia-a-jQuery-or-Scriptaculous-Content-Slider.aspx

     

    [Read the rest of this article...]

    Posted in: Javascript
    26

    Vừa rồi phải làm task nhỏ, liên quan đến việc tạo hiệu ứng drag and drop cho các row trong table. Và mình tìm được 2 link có cung cấp code khá hữu ích. Mình đã làm được từ những hướng dẫn trên site. Khá đơn giản.

    Xin chia sẻ cùng mọi người.

    http://www.isocra.com/2008/02/table-drag-and-drop-jquery-plugin/

    http://www.isocra.com/2007/07/dragging-and-dropping-table-rows-in-javascript/

    [Read the rest of this article...]

    Posted in: Javascript
    04

    Hôm nay, khi view trên Dotnetnuke.com, mình thấy được 1 site cung cấp sheet giống như Excel sheet. Nhìn cũng hay. Control này được viết bằng jQuery.

    Khi mình chạy thử, thì thấy tốc độ cũng tạm ổn. Mình có thể thay đổi, thêm dữ liệu giống như trên Excel. Ngoài ra, tool cũng cung cấp các công thức toán học để tính toán. Thấy cũng hay hay. Nếu rảnh mình sẽ ngâm cứu sâu hơn thằng này.

    http://jqueryplugins.weebly.com/jquerysheet.html

    [Read the rest of this article...]

    Posted in: Javascript
    18
    Giả sử mình muốn thay một chuỗi - -> trong 1 chuỗi lớn. Và có thể có nhiều chuỗi con đó trong chuỗi lớn. Cần phải thay hết. Để làm điều đó thì cần rành về regular expression 1 chút. Mà mình thì hơi kém khoản này. Cuối cùng hỏi đồng nghiệp thì mới biết cách làm:
    newString=bigString.replace(/- ->/gi,””);

    [Read the rest of this article...]

    Posted in: Javascript
    11

    Làm việc với javascript 1 thời gian lâu mà mãi gần đây mới biết là js cũng có try catch. Y như C# vậy. T_T

    try
    {
    //Run some code here
    }
    catch(err)
    {
    //Handle errors here
    }
     

    [Read the rest of this article...]

    Posted in: Javascript
    22

    Dưới đây là các cách kiểm tra 1 biến là null, undefined hay empty trong javascript.

    <script language="javascript">

    var id1=null;

    var id2="";

    if(id1==null)

    {

    alert("id1 la null a");

    }

    if(!id1)

    {

    alert("id1 la null b");

    }

    if(id2=="")

    {

    alert("id2 la empty a");

    }

    if(!id2)

    {

    alert("id2 la empty b");

    }

    if(typeof(id3) == "undefined")

    {

    alert("id3 la undefinded a");

    }

    if(!id3)

    {

    //Throw exception here

    alert("id3 la undefinded b");

    }

    </script>

     

    [Read the rest of this article...]

    Posted in: Javascript
    12

    Quá trình xem các site, thấy có site có tính năng khi move chuột lên 1 cái hình thì hiện ra bên cạnh là hình ảnh to hơn ở điểm mà ta move chuột lên hình chính. Thấy thích cái tính năng đó mà không biết cách làm. Thử mò code mà chịu vì có quá nhiều code. Hôm nay thử search cầu may mà cuối cùng cũng mò được link này. Nó cung cấp code với những hướng dẫn cách sử dụng. Có cả demo nữa. Rất hay. Mình sẽ thử tạo 1 module ví dụ để sử dụng nó xem sao. ^_^

    visual-blast.com

    [Read the rest of this article...]

    Posted in: Javascript
    10
    Trong quá trình cố gắng play sound cho module MyChat của mình, mình phải nghiên cứu cách để play sound trên các browser. Và mình đã biết được 1 số cách sau. Mỗi cách có ưu và nhược riêng.
    +C1: Dùng <bgsound>
    Dưới đây là HTML code
    <BGSOUND id="BGSOUND_ID" LOOP=1 SRC="offline.wav">
    Khi có 1 event, chỉ cần gọi như sau là được:
    function playSound() {
    document.all['BGSOUND_ID'].src='offline.wav';
    }
     
    Nên đặt loop=1 để nó chỉ chạy 1 lần. Nếu đặt loop=-1 thì nó sẽ chạy lập lại liên tục.

    [Read the rest of this article...]

    Posted in: Javascript
    09

    Cách replace những kí tự đặc biệt như trademark trong chuỗi

    Trong quá trình làm tagging cho các site dùng Javascript, lâu lâu gặp các object có chứa text là các kí tự đặc biệt như ®, ©, ™… Nó thường dính liền với 1 chuỗi, ví dụ như:

    <p>Solid 14K Men's Rectangular Dial Strap Watch by Geneve®</p>

    Do yêu cầu của khách hang, khi lấy chuỗi trên thì phải bỏ những kí tự đó. Thể nhưng, những cách thông thường lại rất khó để thay thế được. Ví dụ như cách sau là thua:

    pElement.innerHTML.replace(“®”,””);

    *Cách giải quyết:

    Có 2 cách giải quyết:

    +C1:

    -Với những chuỗi phía trước, ta biết số kí tự của nó (ví dụ Geneve có 6 kí tự). Ta tìm trong chuỗi xem có Geneve không.

    -Rồi ta split chuỗi theo khoảng trắng ra các mảng

    pElement.split(“ ”);

    -Duyệt các mảng vừa split, xem thằng nào có chứa Geneve.

    -Đếm length của item đó.

    [Read the rest of this article...]

    Posted in: Javascript
    21
    Vừa rồi, PM vừa phát hiện ra lỗi khi hijack nhiều link/button trong cùng 1 trang. Dưới đây là code của PM đề minh họa.
     
     
    <a href="www.google.com" onclick="javascript:alert('Link 1')">Link 1</a>
    <br>
    <a href="www.google.com" onclick="javascript:alert('Link 2')">Link 2</a>
     
    <SCRIPT LANGUAGE="JavaScript">
    var ls = document.links;
    /*
    // This is a wrong way to overwrite elements
    for (var i=0; i<ls.length; i++)
    {
                var item = ls[i];
                var oldF = item.onclick;
                item.onclick = function()
                {
                            alert("do something");
                            if (oldF != null)

    [Read the rest of this article...]

    Posted in: Javascript
    07
    Giả sử ta có html code như sau:
    <td width=”100” height=”100”…>…
    Bình thường muốn lấy giá trị của width thì chỉ cần viết
    -Lấy object của td vd như tdElement.
    -tdElement.width.
    Nó sẽ chạy tốt trên IE lẫn Firefox.
    Mình nghĩ cách này cũng sẽ chạy tốt cho cả cách lấy height. Ai dè hôm nay có 1 anh đồng nghiệp làm và phát hiện ra không đúng. Nó chạy trên IE nhưng FF lại ra undefined. Cuối cùng cũng tìm ra cách sau:
    tdElement.getAttribute(“height”)

    [Read the rest of this article...]

    Posted in: Javascript
    06
    Hôm nay khi đang viết javascript cho 1 site trong dự án, mình buộc phải lấy 2 số dưới dạng chuỗi rồi trừ nhau đề lấy hiệu. Vấn đề là 2 số đó có dấu phẩy ví dụ như 7,456.010. Nếu dùng hàm parseFloat để convert nó thì sẽ trả về 7 thôi. Để ra kết quả đúng thì cần xóa dấu phẩy đi bằng cách dùng hàm replace. Rồi sau đó mới dùng parseFloat để convert chuỗi về kiêu float. Khi đó chuỗi có kết quả là 7456.010.
    Dạo này do dự án, toàn phải viết js. Riết rồi quen luôn. Nhiều lúc viết module cho DNN mà cứ quên, viết hàm kiểu javascript. Rồi nghĩ nhiều tới script khi có vấn đề khó khăn gì đó khi viết module DNN. ^_^

    [Read the rest of this article...]

    Posted in: Javascript
    HomeTrangITForum
    Copyright 2010 by Nguyễn Minh ĐứcDesigned by DyNNamiteTerms Of UsePrivacy Statement