Django的js文件没有响应(DOMContentLoaded)

问题出现的原因是因为当浏览器解析到"script"标签并执行其中的JavaScript代码时,页面上的DOM元素尚未完全加载和渲染。这意味着,当尝试通过document.getElementById('create-theme-button')获取元素时,该元素还不存在,导致addEventListener无法被正确绑定到任何元素上。

为了解决这个问题,您可以将JavaScript代码放置在页面加载完成后执行。这可以通过将JavaScript代码包裹在一个监听DOMContentLoaded事件的处理函数中来实现,如下所示:

原始代码:

html 复制代码
    <script>
        document.getElementById('create-theme-button').addEventListener('click', function() {
        // 创建输入框
        var input = document.createElement('input');
        input.type = 'text';
        input.placeholder = '请输入主题名称...';
        
        // 创建添加按钮
        var addButton = document.createElement('button');
        addButton.textContent = '添加';
        addButton.onclick = function() {
            // 这里可以添加点击"添加"按钮之后的逻辑
            // 例如,发送数据到服务器或在页面上显示新的主题
            alert('主题:' + input.value + ' 已添加(这里应该替换为真实的添加逻辑)');
        };
        
        // 获取容器并将输入框和按钮添加到页面上
        var container = document.getElementById('theme-input-container');
        container.appendChild(input);
        container.appendChild(addButton);
    });

    </script>

修改后

html 复制代码
<script>
    document.addEventListener('DOMContentLoaded', function() {
        document.getElementById('create-theme-button').addEventListener('click', function() {
            // 创建输入框
            var input = document.createElement('input');
            input.type = 'text';
            input.placeholder = '请输入主题名称...';

            // 创建添加按钮
            var addButton = document.createElement('button');
            addButton.textContent = '添加';
            addButton.onclick = function() {
                // 这里可以添加点击"添加"按钮之后的逻辑
                alert('主题:' + input.value + ' 已添加(这里应该替换为真实的添加逻辑)');
            };

            // 获取容器并将输入框和按钮添加到页面上
            var container = document.getElementById('theme-input-container');
            container.appendChild(input);
            container.appendChild(addButton);
        });
    });
</script>

这样,Django就能正常响应js代码或者js文件的功能了

相关推荐
财经资讯数据_灵砚智能2 分钟前
基于全球经济类多源新闻的NLP情感分析与数据可视化(日间)2026年5月21日
大数据·人工智能·python·信息可视化·自然语言处理
海兰9 分钟前
【实用程序】图片处理服务,前端应用 (Vue 3 + Pinia + Vite)后端服务 (Node.js + Express + Sharp)
前端·javascript·vue.js·node.js·pinia
Artech18 分钟前
[对比学习LangChain和MAF-03]完全不同的Agent设计哲学
python·ai·langchain·c#·agent·maf
诸葛老刘25 分钟前
国密python调java服务
java·python·国密·sm2
RPGMZ27 分钟前
RPGMZ游戏引擎事件技巧大全
javascript·游戏引擎·事件·rpgmz·rpgmakermz
WL_Aurora28 分钟前
Python 算法基础篇之排序算法(二):希尔、快速、归并
python·算法·排序算法
贵州晓智信息科技32 分钟前
曼德勃罗集的 Three.js 实现
开发语言·javascript·ecmascript
RSCompany37 分钟前
Frida 17 以后 Python API 跑旧版 JS 报 Java is not defined ?一行 import 直接恢复 Frida 16 体验
开发语言·python·逆向·hook·frida·android逆向·frida17
张道宁40 分钟前
从零开始训练YOLO手机检测模型:完整实战教程
python·yolo