为什么Google Visualization会导致HTML1504意外的结束标记错误?

时间:2014-09-24 22:50:50

标签: javascript html internet-explorer charts google-visualization

有人可以解释为什么我在使用Google Visualization API显示图表时会收到HTML1504: Unexpected end tag警告吗?

我一直在调试一个网站,其中图表在Firefox中显示正常,但没有在IE11中显示任何数据。我最终修复了这个问题(IE11处理的日期格式与Firefox无关),但是在尝试追踪上述错误时浪费了很多时间。

我的代码基于https://developers.google.com/chart/interactive/docs/quick_start的示例代码,它提供相同的消息。在JSLint或W3C HTML Validator中都没有出现任何不良内容。

如果我注释掉google.load('visualization', '1.0', {'packages':['corechart']});行,警告就会消失,但这显然会使图表停止工作。更改IE11兼容性设置似乎没有任何效果。

错误在IE11开发者控制台中可见,但在Firefox中的控制台,浏览器控制台或Firebug控制台中没有出现任何等效项。 IE11将错误报告为由我的图表代码末尾的</script>标记触发(这是内联javascript,而不是单独的文件)。删除</script>标记会导致HTML错误(正如所料!)

我很感兴趣,Javascript中的函数调用应该能够在周围的HTML中导致错误。警告信息是否重要?可以避免吗?

1 个答案:

答案 0 :(得分:1)

我在MS Edge + Win 10上遇到了同样的问题。新加载器没有警告:

<!DOCTYPE html><html><head>
  <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
  <script type="text/javascript">
    google.charts.load('current', {'packages':['corechart']});
  </script>
</head>
<body></body>
</html>

除非绝对必要,否则不再更新使用jsapi加载的Google图表。