django实现tab页思路!

本文介绍了一种在网页中动态加载JavaScript文件的方法,并解决了在Django框架中使用特定语法引入静态文件的问题。同时,文章还探讨了如何通过jQuery加载分离的HTML文件,以及如何在业务JS中使用函数作用域来避免变量污染。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先是在主页js里动态加载tab页需要的js

方法:

 

 function addScript(jsfile,callback){
        var head= document.getElementsByTagName('head')[0];  
        var script= document.createElement('script');  
        script.type= 'text/javascript';  
        script.onload = script.onreadystatechange = function() {  
            if (!this.readyState || this.readyState === "loaded" ||    this.readyState === "complete" ) { 
                script.onload = script.onreadystatechange = null;  
                if(callback&&typeof(callback)== 'function'){
                      callback();
                }
            } 
        };  
        script.src= jsfile;  
        head.appendChild(script);
    }

    function jsLoaded(){
       alert('ok');
    }
    调用方式,在需要的地方
    addScript(js路径,jsLoaded);

问题出在 django模板需要{% static 'MoudleBaseJs/menu_manage.js' %}这种格式  所以 放到js路径里根本找不到。

-------

各个业务js用function包含可以有效限制变量污染问题:因为js是函数作用域,在函数体内只要var声明就只作用于当前业务js里不会污染全局同名js,

另外可以不加var声明 来引用主页的全局变量。

-------

tab页里动态加载分离的html调用jquery的load方法:

$("#center2").load("BaseMoudule/GetLoad #menu_manage");  #menu_manage为分离html的dom的id 意思是将主页id为center2的dom下增加分离html里id为menu_mang的dom为子级
------------------------------------------------------------------------------------------------------------------------------------------
解决{% static 'MoudleBaseJs/menu_manage.js' %}这种格式  所以 放到js路径里根本找不到。
直接改变路径为 
addScript("static/MoudleBaseJs/menu_manage.js",jsLoaded);
不需要加%static%这样的引入静态文件的特殊字符

程序员学习公众号:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值