Vấn đề biến Random trong NODEBB khi nhấp vào các link con khác trên web thì không thay đổi.



  • Mình sử dụng javascript Math.floor(Math.random()*5)+1 để tạo 1 biến Random. Javascript mình code trong thẻ <head>....</head> như sau:
    <script type="text/javascript">
    window.onload = function() {
    var vien_random = Math.floor(Math.random()*5)+1;
    console.log('Random :' + vien_random);
    }
    </script>
    Mình được kết quả như hình:
    0_1493463082672_NodeBB_random_1.png
    Khi ấn F5 trên trình duyệt, thì biến RANDOM sẽ thay đổi giá trị đúng như mình mong muốn là 1 số ngẫu nhiên từ 1 - 5. Nhưng khi mình nhấp vào link các trang con trên website thì biến Random này không thay đổi giá trị. Vẫn giữ nguyên giá trị.
    Vậy trong trường hợp của mình, nên làm theo hướng nào để khi mình nhấp vào link các trang con trên website, biến Random này cũng thay đổi theo mà không cần phải nhấn F5 trên trình duyệt.
    Mong được mọi người hướng dẫn mình.

    Tôi là tôi

    0


  • Bạn viết plugin sử dụng hook action.ajaxify.start là được.

    https://github.com/NodeBB/NodeBB/wiki/Hooks#client-side-hooks



  • Mình nghĩ vấn đề là các framework nó DOM cái ID giống như ng-view của AngularJS. Thì khi route thay đổi. Thực tế nó chỉ tạo ra static file html + css + js rồi chèn vào đúng cái ng-view mà bạn chỉnh. Còn lại nó không load lại trang => Không load lại Head => Func không chạy. Nên kiếm cái config load lại controller của framework :D

    Sent from Wood-PC.

    0


  • Mình cảm ơn @Nguyen-Hien và anh @Martin-Pham rất nhiều. Đang làm theo cách của anh @Martin-Pham . Thành công sẽ up lên đây, để mọi người khác tham khảo.

    Tôi là tôi

    0


  • Nhờ anh @Martin-Pham hướng dẫn ở trên, mình làm theo và đã được. Cảm ơn anh @Martin-Pham rất nhiều.
    $(window).on('action:ajaxify.end', function(event, data) {
    var vien_random = Math.floor(Math.random()*2)+1;
    console.log('Random :' + vien_random);
    }

    Tôi là tôi

    0

Log in to reply