javascript - functions.js:1 Uncaught SyntaxError: Unexpected token {
问题描述
var labels = {{ labels|tojson|safe }};
var c = document.getElementById("canvas");
var ctx = c.getContext("2d");
var drawLabels = function(id, xMin, xMax, yMin, yMax) {
ctx.strokeStyle = "red";
ctx.fillStyle = "red";
ctx.rect(xMin, yMin, xMax - xMin, yMax - yMin);
ctx.lineWidth="3";
ctx.stroke();
ctx.font = "10px Arial";
ctx.fillText("id: " + id, xMin,yMin);
};
function redraw() {
ctx.canvas.width = image.width;
ctx.canvas.height = image.height;
c.width = image.width;
c.height = image.height;
ctx.drawImage(image, 0, 0);
for (i = 0; i < labels.length; i++){
drawLabels(labels[i].id, labels[i].xMin, labels[i].xMax, labels[i].yMin, labels[i].yMax);
}
}
这是我的 javascript 代码的一部分,我将它们都组合在 javascript/html 代码中,但要求是分开这.js
部分。起初它工作得很好,但是当我拆分内容时它停止了,我在我的 javascript 文件上收到了那个错误,functions.js
请注意它只是我的 javascript 代码的一部分,因为在没有明确要求的情况下共享超过 150 行代码可能是一个坏事想法,但正如标题所示,错误显然在第 1 行。
解决方案
- 在原始 python 文件中保留(后移)第 1 行
- 在标签末尾包含您的functions.js
<body>
(以确保var labels=....
在生成的HTML中位于functions.js之前)
当您分解出 functions.js 时,python 不再处理该文件,因此这部分{{ labels|tojson|safe }}
不会被替换。
这就是为什么您需要将第 1 行移回 python。
推荐阅读
- php - 不等于运算符不在 if 条件下工作
- javascript - 仅对 div 中最新的输出行进行样式设置
- yosys - 使用 yosys 简化组合逻辑
- javascript - 无法从php输入数组到javascript
- css - 为不同的移动断点处理和分组 CSS 属性
- python - VS Code:无法在 Python Interactive 上加载 anaconda 环境
- sql - 从 SQL 中的 mm/yy 中减去一个月
- java - AWS - 使用 @connections websocket 回调 url 从后端发送响应(单向) - API Gateway websocket 协议
- xslt - 无法使用 unparsed-text() 读取 xslt 中的 .properties 文件
- mysql - Loopback Mysql 连接器自定义查询结果到字段值