django-javascript在包含的模板中不工作
我在django中有一个名为django-javascript在包含的模板中不工作,javascript,django,django-templates,Javascript,Django,Django Templates,我在django中有一个名为base.html的模板,它通过{%include'gui/page.html%} 在该模板中,我有以下javascript,允许在设置时选择整个文本字段,如此文本我将选择所有 <script> $(document).ready(function(){ $('p').dblclick(function(e){ $(this).selectText(); e.preventDefault();
base.html
的模板,它通过{%include'gui/page.html%}
在该模板中,我有以下javascript,允许在设置时选择整个文本字段,如此文本我将选择所有
<script>
$(document).ready(function(){
$('p').dblclick(function(e){
$(this).selectText();
e.preventDefault();
});
});
jQuery.fn.selectText = function(){
this.find('input').each(function() {
if($(this).prev().length == 0 || !$(this).prev().hasClass('p_copy')) {
$('<p class="p_copy" style="position: absolute; z-index: -1;"></p>').insertBefore($(this));
}
$(this).prev().html($(this).val());
});
var doc = document;
var element = this[0];
console.log(this, element);
if (doc.body.createTextRange) {
var range = document.body.createTextRange();
range.moveToElementText(element);
range.select();
} else if (window.getSelection) {
var selection = window.getSelection();
var range = document.createRange();
range.selectNodeContents(element);
selection.removeAllRanges();
selection.addRange(range);
}
};
</script>
$(文档).ready(函数(){
$('p').dblclick(函数(e){
$(this.selectText();
e、 预防默认值();
});
});
jQuery.fn.selectText=函数(){
this.find('input').each(function(){
如果($(this.prev().length==0 | |!$(this.prev().hasClass('p|u copy')){
$('”).insertBefore($(this));
}
$(this.prev().html($(this.val());
});
var doc=单据;
var元素=此[0];
console.log(这个,元素);
if(doc.body.createTextRange){
var range=document.body.createTextRange();
range.moveToElementText(元素);
range.select();
}else if(window.getSelection){
var selection=window.getSelection();
var range=document.createRange();
范围。选择节点内容(元素);
selection.removeAllRanges();
选择。添加范围(范围);
}
};
如果我直接访问模板@http://localhost/gui/page.html
javascript可以工作,但是如果我通过http://localhost/base.html
双击该字段不起任何作用
我尝试将javascript包含在base.html中,但仍然无法加载。django在通过包含的模板调用时如何加载javascript?django不会修改或加载模板中的任何javascript。它只需将其传递到输出。也有同样的问题。为了解决这个问题,必须做下一件事:
- 所有的基本脚本,比如我们
- 添加块,类似于:
{%block extrascripts%}{%endblock%}
/static/js/hand_make.js
child
模板中,包括,即我们在{%include'child\u template.html%}
中使用的模板:
- 在顶部添加
{%load staticfiles%}
- 在中间添加html
- 最后加上
{%block extrascripts%}{%endblock%}
(由于某些原因,无法使用漂亮的样式添加它){% block extrascripts %}
<script>
var my_var_1 = "{{ some_template_data.var_1 }}",
my_var_2 = "{{ some_template_data.var_12 }}";
</script>
<script type="text/JavaScript" src="{% static 'js/hand_made.js' %}"></script>
{% endblock %}
{%block extrascripts%}
var my_var_1=“{{some_template_data.var_1}}”,
my_var_2=“{{some_template_data.var_12}}”;
{%endblock%}
在这种情况下,
my_var_1
和my_var_2
将在hand_made.js中提供
抱歉,我确实在HTML中包含了引号,因此我更新以显示这一点。我的理解是,即使在include标记上,page.html中的javascript也应该可以工作,但事实并非如此。如何获取?打开base.html
时,是否已验证是否包含gui/page.html
的内容?您是否在浏览器中查看源代码以确保javascript存在?根据您使用的URL,Apache(或您的其他服务器)似乎是静态地为文件base.html
提供服务,而不是允许django为文件提供服务,在这种情况下,模板没有被处理,也不包括gui/page.html
。您的web服务器是如何设置的?很奇怪,所以我使用了
标记并将内容放入js/scripts.js
文件中,它就可以工作了。听起来您的django应用程序好像没有运行。您需要从django项目目录或mod_wsgi或gunicorn调用python manage.py runserver
,以运行django项目。你在用这些吗?什么?是,应用程序正在运行。如果它没有运行,我将无法浏览该网站。。。。不管怎么说,它起作用了。正如我所说的,我将脚本放入一个静态文件中,然后从那里加载。奇怪的是,如果我在html模板的标记中有脚本,它就不会加载。你是如何启动Django应用程序的?对我来说不起作用