18 tháng 6 2011

[Chia sẻ] - Tạo hộp thoại thông báo cho blog

Việc tạo 1 hộp thoại nhỏ cho blog để thông báo 1 sự kiện hoặc 1 vấn đề nào đó cho blog xem ra cũng khá cần thiết cho blog. Có nó ta sẽ không phải mất công viết hẳn 1 bài viết để thông báo (nếu như nó sự kiện đó không cần phải dùng 1 bài viết để thông báo). Thay vào đó ta chỉ cần hiển thị 1 đoạn text nhỏ là được.
Có 1 số bạn xin code phần thông báo của mình, mình đã ok. Còn 1 số khác thì chưa rành việc view code nên có yêu cầu mình chia sẻ đoạn code của hộp thoại thông báo này. Hôm nay mình viết hẳn 1 bài viết để chia sẻ nó.

Một vài thông tin về hộp thông báo nhỏ này:
- Hiển thị được nhiều thông báo.
- Các thông báo sẽ hiển thị random (ngẫu nhiên) sau mỗi lần load trang.
- Có button cho phép đóng phần thông báo lại.

Hình ảnh minh họa từ blog của mình:

- Để cho chọn vị trí hợp lý, mình khuyên các bạn nên đặt hộp thông báo này ở phần header của blog.
- Sau khi xác định được vị trí đặt hộp thông báo, các bạn tạo 1 widget HTML/Javascript và dán code bên dưới vào :
<style type="text/css">
#thbao {
padding:6px 0;
border-bottom:1px solid #e6dac3;
}

#thbao-margin {margin: 0 auto;}
.thbao-container {
width:705px;
border: 1px solid #f2b768;
padding: 4px;
font-size:90%;
}
.thbao-header {
background: #ff6734;
color: white;
border:1px solid #ffa789;
padding: 5px 10px;
white-space: nowrap;
}
.thbao-body {
background: #fae9c8;
padding: 5px 10px;
width: 99%;
}
.thbao-close {
float: right;
margin-right: -5px;
}
</style>

<script language="JavaScript">
function hideitem() {
document.getElementById("thbao").style.display="none";
}
//<![CDATA[
thbao = new Array(3);
thbao[0]='{Nội dung đoạn thông báo thứ 1}';
thbao[1]='{Nội dung đoạn thông báo thứ 2}';
thbao[2]='{Nội dung đoạn thông báo thứ 3}';
thbao[3]='{Nội dung đoạn thông báo thứ 4}';

tbindex = Math.floor(Math.random() * thbao.length);
//]]>
</script>

<div id="thbao">
<div id="thbao-margin" class="thbao-container">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="thbao-header"><b>Note</b></td>
<td class="thbao-body">
<a href="#" class="thbao-close" onclick="hideitem()"><img src="http://www.blogger.com/img/close.png" alt="Đóng lại" /></a>
<span class="thbao-text">

<script type="text/javascript">
document.write(thbao[tbindex]);
</script>

</span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
- Đầu tiên là việc chỉnh sửa lại code CSS:
Các bạn có thể xem hình minh họa bên dưới rồi thay đổi lại các giá trị của nó để cho hộp thông báo phù hợp với blog của bạn, chủ yếu là chỉnh lại các giá trị màu sắc và kích thước.

- Tiếp theo là chỉnh lại code javascript:
Ta thấy có đoạn code như thế này :
thbao = new Array(3);
thbao[0]='{Nội dung đoạn thông báo thứ 1}';
thbao[1]='{Nội dung đoạn thông báo thứ 2}';
thbao[2]='{Nội dung đoạn thông báo thứ 3}';
thbao[3]='{Nội dung đoạn thông báo thứ 4}';

Tất cả nội dung của thông báo phải cho vào dấu nháy đơn. Nội dung hiển thị thông báo cho phép sử dụng thẻ HTML. Ở trên là code mẫu cho 4 đoạn thông báo, nếu là 5 đoạn các bạn chỉ việc thêm vào như code bên dưới :
thbao = new Array(4);
thbao[0]='{Nội dung đoạn thông báo thứ 1}';
thbao[1]='{Nội dung đoạn thông báo thứ 2}';
thbao[2]='{Nội dung đoạn thông báo thứ 3}';
thbao[3]='{Nội dung đoạn thông báo thứ 4}';
thbao[4]='{Nội dung đoạn thông báo thứ 5}';

Như vậy đã hoàn thành. Chúc các bạn thành công.

28 nhận xét:

  1. Thủ thuật hay quá đi à... mình bóc tem nhé... thanks cậu :p

    Trả lờiXóa
  2. Thỉnh thoảng gặp lỗi này {undefined} ~x(

    Trả lờiXóa
  3. Một thủ thuật hay mà áp dụng rất đơn giản, cảm ơn anh Dũng đã chia sẻ! Hy vọng anh sẽ có nhiều bài viết cho anh em áp dụng! :D

    Trả lờiXóa
  4. Anh dũng đừng quên làm cho cái em kia nhé

    Trả lờiXóa
  5. à, ok rồi, phải chỉnh các thông số cho hợp với số luong thông báo mới không bị lỗi :p

    Trả lờiXóa
  6. @ MoigioiForex.Com: lỗi {undefined} là do bạn thiết lập phần thbao = new Array(n) với các phần bên dưới không chính xác. Phần thbao = new Array(n) là n thì các phần bên dưới phải tạo ra là n+1.

    Trả lờiXóa
  7. @Yolks : uh, rảnh a làm cho.

    @MoigioiForex.Com : àh thì ra là cái lỗi đó hả, bạn Linh Dung trả lời đúng rồi đó. Với lại trong bài hướng dẫn mình cũng để code mẫu rõ mà, tại bạn ko để ý đó thôi.

    Trả lờiXóa
  8. có để ở trên mà Ngân, cho phép sử dụng các thẻ HTML :D

    Trả lờiXóa
  9. ah, cái đó phải dùng javacript rồi, sẽ nặng thêm đó

    Trả lờiXóa
  10. Bài viết rất hay, mình đã áp dụng cho blog, thanks Dũng! :)

    Trả lờiXóa
  11. Tông màu vàng này chèn vô trang em cũng hợp nên em ăn cắp luôn code thêm vào, hehe.

    Trả lờiXóa
  12. Cảm ơn FD nhé, sẽ thử dùng trong tương lai nếu có thông báo

    Trả lờiXóa
  13. Anh dũng đẩy tiến độ giùm em, đã 7 days rồi anh ơi :D ^^, em đang rất cần để hoàn thành xong cái temp

    Trả lờiXóa
  14. thủ thuật quá hay, thanks FD nhé

    Trả lờiXóa
  15. Lâu rồi không thấy bạn viết bài nhỉ, hay là chuyển sang blog khác rồi?

    Trả lờiXóa
  16. mình đã học được rất nhiều từ những bài viết của FD. Cám ơn bạn rất nhiều

    Trả lờiXóa
  17. không biết dạo này anh Dũng đi đâu rồi mà không thấy anh chém gió nhỉ?nhiều người hỏi anh thủ thuật tạo khung tìm kiếm giống như trang của anh đó

    Trả lờiXóa
  18. Fandung ơi cho mình copy và post trên blog của mình nhé, đảm bảo sự tôn trọng quyền tác giả của Dũng là điều đầu tiên cần thực hiện .

    Trả lờiXóa
  19. http://www.vankiep123.com/

    Trả lờiXóa
  20. Good!
    Cảm ơn vì đã chia sẻ thủ thuật
    Cho mình xin nhá :X
    À tiện cho mình hỏi thêm là Blog FD có trao đổi link nữa không. Nếu có thì yêu cầu là gì?

    Trả lờiXóa
  21. Làm sao chỉnh font chữ trong dòng thông báo to hơn, in đậm hoặc nghiêng... và có thể tô màu giống như thông báo của bạn vậy Dũng.

    Mình ko rành lắm, ngồi mò quài ko ra, bạn chỉ giúp mình cái nhan, thanks alot.

    Trả lờiXóa
  22. @Lê Phổ Hoàng Khang : đây là các thẻ cơ bản của HTML mà bạn, nếu bạn không rõ thì mình hướng dẫn sơ :
    - muốn chữ đậm thì bạn bỏ nó vào thẻ <b>
    ví dụ :
    <b>{Nội dung đoạn TEXT}</b>
    - chứ in nghiêng thì bạn dùng thẻ <i>
    ví dụ :
    <i>{Nội dung đoạn TEXT}</i>
    - nếu muốn chữ có kích thước lớn thì bạn dùng thẻ <span> như bên dưới :
    lt;span style="font-size:13px;">{Nội dung đoạn TEXT}</span>

    Trả lờiXóa
  23. àh quên nữa, muốn chữ to thì bạn thay đổi giá trị 13px thành số lớn hơn, ví dụ 16px

    ps: làm biếng viết lại comment. nên trả lời thêm cái khác

    Trả lờiXóa
  24. Nặc danh16:34 24/1/12

    mình mới làm cái này nhưng sao mình để bên http://www.ibasictips.blogspot.com lại hiển thị được mà khi mình đã mua tên miền http://www.ibasictips.com/ lại ko hiển thị được nữa vậy bạn.mình đã xóa đi và làm lại từ đầu nhưng vẫn ko đc.mong bạn giúp cho.cảm ơn bạn rất nhiều.bài viết của bạn rất bổ ích

    Trả lờiXóa
  25. Nặc danh19:53 24/1/12

    alo ko trả lời giùm mình mới

    Trả lờiXóa
  26. Nặc danh11:08 6/3/12

    Cám ơn bạn nhièu nha

    Trả lờiXóa
  27. Nặc danh16:51 24/7/12

    thanks ban

    Trả lờiXóa
  28. hay undefined cảm ơn nhá

    Trả lờiXóa

» Có thể sử dụng các thẻ <b>,<i>,<a>.