当 JavaScript 没有执行时
2020-05-10
137
我创建了一个简单的 javascript 函数,在 django 中运行,该函数会自动更改 svg 文件中的文本。
如果我在网页控制台中运行该函数,它会正常工作。但脚本标记内的任何内容都不会运行,我不明白为什么。查看源代码,模板标记正确导入了数据,并且找到了 javascript 文件。但里面什么都没有运行,甚至与函数无关的代码也没有运行 - 您可以看到我添加的 console.log 代码。
我对 django 和网站开发还很陌生,所以我不清楚我应该在哪里查找为什么它没有执行 - 是否有某个地方应该出现错误?
home.html
{% extends 'kb/base.html' %}
{% load static %}
{% block extrahead %}
<link rel="stylesheet" href="{% static 'css/kb.css' %}">
<script type="text/javascript" src="{% static "js/fillKinshipDiagram.js" %}">
console.log(4 + 10);
var terms = {{ terms|safe }};
window.onload = function() {
main(terms);
};
</script>
{% endblock %}
{% block content %}
<div class="home-content">
<div class="kinshipdiagram-container">
<object type="image/svg+xml" data="{% static "img/diagrams/nuclear_diagram.svg" %}" id="kinshipdiagram" width="50%" height="50%"></object>
</div>
</div>
{% endblock %}
fillKinshipDiagram.js
function main(terms){
var svgDocument
svgObject = document.getElementById('kinshipdiagram');
svgDocument = svgObject.contentDocument;
for (var i = 0; i < terms.length; i++){
var kincode = terms[i].parameter_id
text = svgDocument.getElementById(kincode)
if (text != null){
text.textContent = terms[i].form;
text.style.fontSize = "20px"
}
}
1个回答
应该有两个不同的脚本标签。一个用于包含外部脚本
js/fillKinshipDiagram.js
,另一个用于添加页内脚本。
<script type="text/javascript" src="{% static "js/fillKinshipDiagram.js" %}"></script>
<script type="text/javascript" >
console.log(4 + 10);
var terms = {{ terms|safe }};
window.onload = function() {
main(terms);
};
</script>
xdeepakv
2020-05-10