Hỏi về cách chuyển hướng tới 1 trang web ngẫu nhiễn có trong danh sách

Xin chào mọi người ạ, em không phải dân chuyên nên cũng chỉ mò mẫm được đoạn code javascript giúp chuyển hướng tới 1 website khác, nhưng giờ em muốn chuyển hướng tới ngẫu nhiên tới 1 trang web có trong danh sách thì phải làm thế nào ạ, xin mọi người giúp đỡ ạ.

Code hiện tại của em:

<html>
    <head>
    <script type="text/javascript">
    <!--
    function delayer(){
    window.location = "https://blogspot.com"
    }
    //-->
    </script>
    </head>
    <body onLoad="setTimeout('delayer()', 500)">
    </body>
</html>

Em đăng code bằng markdown nha, dùng hình thì hơi khó đọc (trong trường hợp này lại không khó đọc lắm?) và không copy được.


Thật ra, câu trả lời rất đơn giản, tạo ra một mảng (array) chứa danh sách địa chỉ của các website đó, giả sử đặt tên là url_arr rồi set thuộc tính location của window bằng url_arr[i] với i là một số ngẫu nhiên từ 0 đến độ dài của mảng - 1 (vì chỉ số trong mảng bắt đầu từ 0). Cái này nghe có vẻ dài dòng khó hiểu nhưng khi em đã biết lập trình JS cơ bản thì cái này cũng dễ hiểu thôi.

4 Likes

Dạ em ngồi kiếm google cách dùng mảng, rồi chọn giá trị ngẫu nhiễn trong mảng, rồi áp dụng sửa đi sửa lại code vẫn không được. Anh có tài liệu hướng dẫn nào cho em xin với ạ, hoặc sửa giúp em đoạn code ở trên với ạ, em chỉ cần chuyển hướng ngẫu nhiên tới 1 trang web trong danh sách 3 trang ạ.

Danh sách 3 trang là gì? Ý em là một cái danh sách website dài ba trang? Nếu thấy dài quá thì lưu vào một file riêng, rồi lấy nội dung file ra là được (cách này cần phải có server).


Đoạn code trên bị lỗi là do tham số truyền vào hàm setTimeout là một hàm và thời gian chờ trước khi gọi hàm (mặc định là 0), không phải là một chuỗi nên sẽ bị lỗi. Ngoài ra, tên_hàm() là dùng để gọi hàm, khi gọi sẽ trả về giá trị (nếu có) hoặc undefined và hàm trong JS thật ra là một biến :V.

setTimeout('delayer()', 500)
//Đoạn này sai, phải là:
setTimeout(delayer, 500)

Về tài liệu lập trình web thì có trang MDN Web Docs, còn hướng dẫn lập trình Javascript thì trên mạng có đầy rồi, cả tiếng Anh lẫn tiếng Việt đều có.
MDN Web Docs:

4 Likes

Code của em đã chạy, show luôn cho các bạn khác nếu cần.

<html>
<head>
<script type="text/javascript">
var tungkhanh = new Array();
tungkhanh[0] = "https://web1.blogspot.com/";
tungkhanh[1] = "https://web2.blogspot.com/";
tungkhanh[2] = "https://web3.blogspot.com/";
var random = Math.floor(Math.random()*tungkhanh.length);
window.location = tungkhanh[random];
</script>
</head>
</html>
3 Likes

Góp ý nho nhỏ đoạn này:

var tungkhanh = new Array();
tungkhanh[0] = "https://web1.blogspot.com/";
tungkhanh[1] = "https://web2.blogspot.com/";
tungkhanh[2] = "https://web3.blogspot.com/";

Ghi như thế quá dài dòng, rút gọn lại thế này cho nhanh:

var tungkhanh = ["https://web1.blogspot.com/", "https://web2.blogspot.com/", "https://web3.blogspot.com/"]

Mà thật ra code đơn giản thế không cần phải show đâu, biết lập trình JS cơ bản rồi thì mấy đoạn code đó không cần thiết (trừ khi bạn lười và chỉ thích copy code trên mạng) :penguin:

6 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?