开发者问题收集

当 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