New
Loading...

Tự hỏi đáp

Trả lời

Kí tự xuống dòng ( \n ) dùng để chèn vào đoạn string để xuống dòng khi soạn thảo hoặc import nội dung text, đôi khi bạn phải remove nó đi, sau đây là cách làm đơn giản bằng Javascript:

Bạn dùng hàm replace để remove chúng với 1 chuỗi rỗng (""):
Ví dụ:
var text = "text1\ntext2";
text.replace(/\r?\n|\r/g, '');
// return => "text1text2"


Nếu câu trả lời sai ngại gì không chỉnh? Nếu câu trả lời thiếu ngại gì không thêm? Nếu có câu trả lời hay hơn ngại gì không chia sẻ? Mời các bạn comment bên dưới


Sau đây là cách viết một hàm chuyển đổi đơn vị thời gian từ Giây sang Giờ - Phút - Giây cực kì đơn giản bằng Javascript:

Viết hàm chuyển đổi đơn vị thời gian từ Giây sang Giờ - Phút - Giây bằng Javascript

- Viết hàm chuyển đổi, đặt tên tùy ý, mình đặt là convertHMS :
function convertHMS(value) {
    var sec_num = parseInt(value, 10); // đổi giá trị sang number (đơn vị giây)
    var hours   = Math.floor(sec_num / 3600); // giờ
    var minutes = Math.floor((sec_num - (hours * 3600)) / 60); //  phút
    var seconds = sec_num - (hours * 3600) - (minutes * 60); //  giây
    // thêm số 0 trước đơn vị nhỏ hơn 10
    if (hours   < 10) {hours   = "0"+hours;}
    if (minutes < 10) {minutes = "0"+minutes;}
    if (seconds < 10) {seconds = "0"+seconds;}
    return hours+':'+minutes+':'+seconds; // kết quả trả về HH : MM : SS
}
- Cách gọi và sử dụng:
var myTime = convertHMS(4600);
console.log(myTime); // 01:16:40

Rất đơn giản phải không các bạn? Chúc các bạn thành công!

Xem thêm:
- TypeScript là gì?
- Cách tính tổng một mảng số (number array) trong Javascript ?
- RequireJS là gì?
- WebGL là gì? Học lập trình WebGL ở đâu?
- Phép chia lấy phần nguyên trong Javascript ?

Tự hỏi đáp

Trả lời

Cách tính tổng một mảng số (number array) trong Javascript rất đơn giản, bạn tạo biến tên là sum, sử dụng hàm reduce để đếm lùi từng số rồi sử dụng hàm add để tính tổng như sau:

var sum = [1, 2, 3].reduce(add, 0);

function add(a, b) {
    return a + b;
}

console.log(sum); // xuất kết quả trên console là 6

Trong chuẩn ECMAScript 2015 (hay còn gọi là ECMAScript 6), bạn có thể viết tính tổng ngắn gọn hơn như sau:

var sum = [1, 2, 3].reduce((a, b) => a + b, 0);
console.log(sum); // kết quả sum = 6

Chúc các bạn thành công!

Nếu câu trả lời sai ngại gì không chỉnh? Nếu câu trả lời thiếu ngại gì không thêm? Nếu có câu trả lời hay hơn ngại gì không chia sẻ? Mời các bạn comment bên dưới


Bạn là webmaster và muốn treo quảng cáo popup nhưng bạn không muốn làm phiền người dùng bởi những quảng cáo đó, vậy làm sao để tạo quảng cáo pop up mà không gây khó chiu cho người truy cập. Sau đây là một dạng quảng cáo pop up không làm phiền người truy cập hay nói đúng hơn là ít làm phiền người truy cập đó là "Pop up under".



Thực hiện:

- Đặt 2 đoạn Script sau trước thẻ </head>:

Script 1 :
 <script>

        //Pop-under window- By JavaScript Kit//Credit notice must stay intact for use//Visit http://javascriptkit.com for this script//specify page to pop-under

        var popunder="http://link-web.com/"

        //specify popunder window features//set 1 to enable a particular feature, 0 to disable

        var winfeatures="width=800,height=510,scrollbars=1,resizable=1,toolbar=1,location=1,menubar=1,status=1,directories=0"

        //Pop-under only once per browser session? (0=no, 1=yes)//Specifying 0 will cause popunder to load every time page is loaded

        var once_per_session=0

        ///No editing beyond here required/////

        function get_cookie(Name) {

        var search = Name + "="

        var returnvalue = "";

        if (document.cookie.length > 0) {

        offset = document.cookie.indexOf(search)

        if (offset != -1) { // if cookie exists

        offset += search.length

        // set index of beginning of value

        end = document.cookie.indexOf(";", offset);

        // set index of end of cookie value

        if (end == -1)

        end = document.cookie.length;

        returnvalue=unescape(document.cookie.substring(offset, end))

        }

        }

        return returnvalue;

        }

        function loadornot(){

        if (get_cookie('popunder')==''){

        loadpopunder()

        document.cookie="popunder=yes"

        }

        }

        function loadpopunder(){

        win2=window.open(popunder,"",winfeatures)

        win2.blur()

        window.focus()

        }

        if (once_per_session==0)

        loadpopunder()

        else

        loadornot()

   </script> 
 Script 2 :

<script>

    function popup() {

    var url = "http://link-web.com/";

    window.open(url);

    popWin = window.open(page,'popWin');

    popWin.blur();

    window.focus();

    }

    popup();

 </script>
http://link-web.com/ là địa chỉ web bạn muốn quảng cáo pop up
Những nội dung có đánh màu đỏ là phần xét thông số cho cửa sổ pop up ví dụ như chiều cao, chiều rộng, toolbar... bạn có thể thay đổi tùy ý bạn.

Lưu ý: Popup sẽ không xuất hiện trên các trình duyệt sử dụng các add on hay chương trình chặn popup.

Chúc bạn thành công!

Xem thêm:
- Hướng dẫn đặt quảng cáo theo từng forum hoặc category trong xenforo
- Code chèn banner xuất hiện tự động random đơn giản bằng Javascript
- Code popup quảng cáo xuất hiện khi click chuột lần đầu tiên
- Tổng hợp những hiệu ứng ánh sáng flash để làm banner hoặc intro
- Hướng dẫn cách làm banner quảng cáo responsive
- Hướng dẫn tạo quảng cáo sau bài viết đầu tiên cho diễn đàn Xenforo


Đôi khi làm web bạn sẽ gặp những trường hợp lệnh Javascript phải chạy sau khi việc load trang đã hoàn tất, nếu không thì sẻ gặp lỗi.


Việc đó sẽ được giải quyết bằng một đoạn Script jQuery đơn giản sau:

<script type="text/javascript">
$(window).bind("load", function() { 

// lệnh javascript mà bạn muốn chạy sau khi load trang xong 

});
</script>

Giải thích:
Phương thức bind() gắn một hoặc nhiều sự kiện xử lý cho các thành phần đã được chọn, và chỉ rõ một hàm để chạy khi sự kiện đó xảy ra.
Thành phần được chọn ở đây là window và sự kiện là load nghĩa là khi cửa sổ được load xong thì sẻ chạy lệnh mà bạn muốn.

Rất đơn giản phải không nào? Chúc các bạn thành công!

Xem thêm:
- Lấy đường dẫn URL và Title trang hiện tại bằng Javascript hoặc jQuery 
- Cách lấy giá trị biến từ một URL bằng Javascript (Get URL Variables)
- Hướng dẫn sử dụng Lazy Load cho website hoặc blog
- Lấy đường dẫn URL của trang hiện tại bằng PHP


Lấy đường dẫn URL và Title trang hiện tại bằng Javascript hoặc jQuery chúng ta sử dụng đối tượng Location và Document.


Cách làm như 2 ví dụ ngắn sau:

Sử dụng Javascipt: Sử dụng window.location và window.document
var getUrl = window.location.href;     // Lấy đường dẫn url trang hiện tại  
var getTitle = window.document.title;  // Lấy tiêu đề trang hiện tại
Sử dụng jQuery: Sử dụng $(location) và $(document)
$(document).ready(function () {
  var getUrl = $(location).attr('href');    // Lấy đường dẫn url trang hiện tại
  var getTitle = $(document).attr('title');  // Lấy tiêu đề trang hiện tại
});

Chúc các bạn thành công!


Xem thêm:
- Cách tự động chuyển trang ( Auto Redirect ) bằng HTTP Status Code 301 hoặc 302
- Lấy đường dẫn URL của trang hiện tại bằng PHP
- Hướng dẫn resize ảnh đơn giản bằng PHP
- Tài liệu lập trình PHP và MYSQL bằng Tiếng Việt miễn phí
- Ebook căn bản lập trình PHP và MySQL bằng tiếng Việt

Cách lấy giá trị biến từ một URL bằng Javascript (Get URL Variables), bước thực hiện rất đơn giản như sau:

Tạo một function lấy giá trị biến từ một URL như sau:
function getQueryVariable(variable)
{
       var query = window.location.search.substring(1);
       var vars = query.split("&");
       for (var i=0;i<vars.length;i++) {
               var pair = vars[i].split("=");
               if(pair[0] == variable){return pair[1];}
       }
       return(false);
}
Sau đó chúng ta sẻ sử dụng function này:

Ví dụ từ một URL như sau: http://www.obinb.com/page.php?order=1&thumb=image.jpg

- Khi chúng ta gọi getQueryVariable("order") thì kết quả trả về sẻ là 1
- Khi chúng ta gọi getQueryVariable("thumb") thì kết quả trả về sẻ là image.jpg


Xem thêm:
- Lấy đường dẫn URL và Title trang hiện tại bằng Javascript hoặc jQuery
- Lấy đường dẫn URL của trang hiện tại bằng PHP
Hiện nay người làm web đã chú trọng hơn với người dùng mobile nên một website khi thiết kế phải hỗ trợ cả trình duyệt mobile. Thông thường là sử dụng giao diện Reponsive hoặc code Detect mobile, sau đây là  hướng dẫn cách sử dụng code Detect mobile đơn giản bằng JavaScript giúp bạn dễ dàng làm web hơn.


Bước 1: Tạo một file js đặt tên tùy ý và chép đoạn code sau vào:
var mobile = function(){

        return {

            detect:function(){

                var uagent = navigator.userAgent.toLowerCase();

                var list = this.mobiles;

                var ismobile = false;

                for(var d=0;d<list.length;d+=1){

                    if(uagent.indexOf(list[d])!=-1){

                        ismobile = true;

                    }

                }

                return ismobile;

            },

            mobiles:[

                "midp","240x320","blackberry","netfront","nokia","panasonic",

                "portalmmm","sharp","sie-","sonyericsson","symbian",

                "windows ce","benq","mda","mot-","opera mini",

                "philips","pocket pc","sagem","samsung","sda",

                "sgh-","vodafone","xda","palm","iphone",

                "ipod","android"

            ]

        };

    }();


    if(mobile.detect()){

        alert('You are using a mobile phone.');  

    }else{

        alert('You are using a desktop browser');

    }
Bước 2: Đặt file js vừa tạo vào trong thẻ <head>

Bước 3: Sửa lại hàm bạn muốn thực hiện nếu là trình duyệt là mobile:

alert('You are using a mobile phone.');


hoặc ngược lại:

alert('You are using a desktop browser');

Bạn có thể thay thế tùy ý ví dụ như khi trình duyệt mobile thì chuyển qua skin mobile hoặc cho xuất hiện 1 file css viết riêng cho trình duyệt mobile chẳng hạn.

Sau đây là trích dẫn cách làm menu dropdown bằng css và jquery rất đơn giản nhanh chóng chỉ với 3 bước cho mọi người cùng tham khảo:



Bước 1. HTML

Coppy đoạn code html dưới vào vị mà bạn muốn đặt menu:
<ul class="topnav">
    <li><a href="#">Home</a></li>
    <li>
        <a href="#">Tutorials</a>
        <ul class="subnav">
            <li><a href="#">Sub Nav Link</a></li>
            <li><a href="#">Sub Nav Link</a></li>
        </ul>
    </li>
    <li>
        <a href="#">Resources</a>
        <ul class="subnav">
            <li><a href="#">Sub Nav Link</a></li>
            <li><a href="#">Sub Nav Link</a></li>
        </ul>
    </li>
    <li><a href="#">About Us</a></li>
    <li><a href="#">Advertise</a></li>
    <li><a href="#">Submit</a></li>
    <li><a href="#">Contact Us</a></li>
</ul>

Bước 2. CSS
Bạn coppy đoạn css này vào file css của bạn:
ul.topnav {
 list-style: none;
 padding: 0 20px; 
 margin: 0;
 float: left;
 width: 920px;
 background: #222;
 font-size: 1.2em;
 background: url(topnav_bg.gif) repeat-x;
}
ul.topnav li {
 float: left;
 margin: 0; 
 padding: 0 15px 0 0;
 position: relative; /*--Declare X and Y axis base for sub navigation--*/
}
ul.topnav li a{
 padding: 10px 5px;
 color: #fff;
 display: block;
 text-decoration: none;
 float: left;
}
ul.topnav li a:hover{
 background: url(topnav_hover.gif) no-repeat center top;
}
ul.topnav li span { /*--Drop down trigger styles--*/
 width: 17px;
 height: 35px;
 float: left;
 background: url(subnav_btn.gif) no-repeat center top;
}
ul.topnav li span.subhover {background-position: center bottom; cursor: pointer;} /*--Hover effect for trigger--*/
ul.topnav li ul.subnav {
 list-style: none;
 position: absolute; /*--Important - Keeps subnav from affecting main navigation flow--*/
 left: 0; top: 35px;
 background: #333;
 margin: 0; padding: 0;
 display: none;
 float: left;
 width: 170px;
 border: 1px solid #111;
}
ul.topnav li ul.subnav li{
 margin: 0; padding: 0;
 border-top: 1px solid #252525; /*--Create bevel effect--*/
 border-bottom: 1px solid #444; /*--Create bevel effect--*/
 clear: both;
 width: 170px;
}
html ul.topnav li ul.subnav li a {
 float: left;
 width: 145px;
 background: #333 url(dropdown_linkbg.gif) no-repeat 10px center;
 padding-left: 20px;
}
html ul.topnav li ul.subnav li a:hover { /*--Hover effect for subnav links--*/
 background: #222 url(dropdown_linkbg.gif) no-repeat 10px center; 
}

Bước 3. jQuery

Chèn đường dẫn jQuery vào trang web của bạn
<script src='//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js'></script>
Chèn đoạn script sau đặt dưới link jQuery:

$(document).ready(function(){

 $("ul.subnav").parent().append("<span></span>"); //Only shows drop down trigger when js is enabled (Adds empty span tag after ul.subnav*)
 
 $("ul.topnav li span").click(function() { //When trigger is clicked...
  
  //Following events are applied to the subnav itself (moving subnav up and down)
  $(this).parent().find("ul.subnav").slideDown('fast').show(); //Drop down the subnav on click

  $(this).parent().hover(function() {
  }, function(){ 
   $(this).parent().find("ul.subnav").slideUp('slow'); //When the mouse hovers out of the subnav, move it back up
  });

  //Following events are applied to the trigger (Hover events for the trigger)
  }).hover(function() { 
   $(this).addClass("subhover"); //On hover over, add class "subhover"
  }, function(){ //On Hover Out
   $(this).removeClass("subhover"); //On hover out, remove class "subhover"
 });

});
 
Chú ý: Bạn có thể bỏ dấu mũi trên bằng cách bỏ thẻ SPAN như trong hình ra:



Tham khảo: sohtanaka.com

Chúc các bạn thành công!
Nút Roll Top hay còn gọi là nút "Lên đầu trang" dùng để di chuyển nhanh lên đầu trang web mà không cần dùng chuột kéo RollBar. Website của bạn đã có nút này chưa? Nếu chưa có thì hãy cùng Beetiny Blog thực hiện thêm nút này chỉ với 3 bước nhé.


Bước 1: Thêm file thư viện jquery vào website của bạn (Gắn trước thẻ đóng </head>), bạn có thể dùng thư viện jquery trực tuyến của google:

<script type="text/javascript" src='http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js'></script>
Thêm đoạn script dưới đây bên dưới :
<script type="text/javascript">

    $(function() {
        $(window).scroll(function() {

            if($(this).scrollTop() != 0) {

                $('#toTop').fadeIn();   

            } else {

                $('#toTop').fadeOut();
            }

        });
        $('#toTop').click(function() {

            $('body,html').animate({scrollTop:0},800);
        });   

    });

    </script>
Chú ý: đoạn script trên phải nằm dưới link file thư viện jquery.

Bước 2: Viết style cho nút Roll Top, bạn chèn trên thẻ </head> hoặc add vào file css của bạn đoạn css sau:

<style type="text/css">

    #toTop{

        border:1px solid #ccc;

            background:#f7f7f7;

            text-align:center;

            padding:18px;

            border-radius:5px;

            position:fixed; /* this is the magic */

            bottom:10px; /* together with this to put the div at the bottom*/

            right:10px;

            cursor:pointer;

            display:none;

            color:#333;

            font-size:11px;

    }

    #toTop:before{

        content:"";

        position:Absolute;

        width:0;

        height:0;

        border:11px solid transparent;

        border-bottom:11px solid #099;

        left:7px;

        top:-4px;

    }

    #toTop:after{

        content:"";

        position:Absolute;

        width:10px;

        height:12px;

        background-color:#099;

        left:13px;

        top:18px;
    }

    </style>
Bước 3: Chèn nút Roll Top vào website, bước này rất đơn giản chép thẻ div bên dưới vào vị trí bất kì trên website của bạn, nên nhớ là nằm trong thẻ <body> nhé:
<div id="toTop"></div>
Vậy là xong, bây giờ hãy chạy thử để thấy kết quả!

Chúc các bạn thành công!
Hướng dẫn cách tạo slide bằng javascript đơn giản bằng 2 bước:


Bước 1: Tạo file js lấy tên slide.js với nội dung như sau:
var preloadedimages=new Array()
for (i=0;i<photos.length;i++){
 preloadedimages[i]=new Image()
 preloadedimages[i].src=photos[i]
}
function applyeffect(){
 if (document.all && document.images.photoslider.filters){
  document.images.photoslider.filters.revealTrans.Transition=Math.floor(Math.random()*23)
  document.images.photoslider.filters.revealTrans.stop()
  document.images.photoslider.filters.revealTrans.apply()
 }
}
function playeffect(){
 if (document.all && document.images.photoslider.filters)
  document.images.photoslider.filters.revealTrans.play()
}
function keeptrack(){
 window.status="Image "+(which+1)+" of "+photos.length
}
function doSlideShow(){
 if (which==photos.length-1) which=-1
 which++
 applyeffect()
 document.images.photoslider.src=photos[which]
 playeffect()
 keeptrack()
}
function transport(){
 //window.location=photoslink[which]
 popupCoop();
}
Bước 2: Chèn đoạn code sau vào nơi bạn muốn hiển thị Slide:
<script>
    var photos=new Array()
    var which=0
    var pause=4000;
     photos[0]= "image1.jpg";
     photos[1]= "image2.jpg";
     photos[2]= "image3.jpg";
     photos[3]= "image4.jpg";
     photos[4]= "image1.jpg";
     photos[5]= "image6.jpg";
     photos[6]= "image7.jpg";

            photos[6]= "image8.jpg";

     </script>
    <script type="text/javascript" language="javascript" src="slide.js"></script>
    <script language="javascript">
    document.write('<img src="'+photos[0]+'" name="photoslider" id="photoslider" style="filter:revealTrans(duration=2,transition=23)" border=0>')
    setInterval("doSlideShow()",pause) 
 </script>
  Bạn chỉ việc lưu lại và chạy thử, lưu ý bạn có thể thêm bao nhiêu hình tùy thích, chỉ cần điền đúng đường dẫn hình là được.

Chúc bạn thành công!
Đôi khi bạn muốn tạo những nội dung nổi bật hoặc quảng cáo roll theo màn hình khi kéo chuột, việc này có vẻ sẻ phức tạp khi bạn tự viết bằng javascript. Nhưng với plugin ScrollToFixed thì việc đó thật dễ dàng.

Mời các bạn xem qua một số ví dụ về cách sử dụng:

Mặc định

$(document).ready(function() {
  $('#mydiv').scrollToFixed();
});

Dùng với margin limit

$(document).ready(function() {
  $('#cart').scrollToFixed({ marginTop: 10, limit: $($('h2')[5]).offset().top });
});

Header fixed và footer fixed với một thông số limit

$(document).ready(function() {
  $('.header').scrollToFixed();
  $('.footer').scrollToFixed( { bottom: 0, limit: $('.footer').offset().top } );
});

Dùng với nhiều option khác nhau hoặc tạo thêm sự kiện khi roll, ví dụ như đổi màu font chữ, background...

$(document).ready(function() {
    $('.header').scrollToFixed({
        preFixed: function() { $(this).find('h1').css('color', 'blue'); },
        postFixed: function() { $(this).find('h1').css('color', ''); }
    });

    $('.footer').scrollToFixed( {
        bottom: 0,
        limit: $('.footer').offset().top,
        preFixed: function() { $(this).find('h1').css('color', 'blue'); },
        postFixed: function() { $(this).find('h1').css('color', ''); }
    });

    $('#summary').scrollToFixed({
        marginTop: $('.header').outerHeight() + 10,
        limit: function() {
            var limit = $('.footer').offset().top - $('#summary').outerHeight(true) - 10;
            return limit;
        },
        zIndex: 999,
        preFixed: function() { $(this).find('.title').css('color', 'blue'); },
        preAbsolute: function() { $(this).find('.title').css('color', 'red'); },
        postFixed: function() { $(this).find('.title').css('color', ''); },
        postAbsolute: function() { $(this).find('.title').css('color', ''); }
    });
});

Bạn có thể xem demo trực tiếp một số ví dụ:

Cài đặt và sử dụng:

Bạn download plugin tại đây

Hoặc cập nhật bản mới nhất tại đây

Chúc các bạn thành công