我有一个问题,以前完全正常工作的 HTML / Javascript 在非常特定的情况下会抛出错误。抛出的错误是:未捕获的语法错误:预期的表达式,得到“;”记录在浏览器控制台中。此错误仅在第一次加载页面时抛出,即提交表单时。刷新页面总是会导致完美的加载,没有任何形式的控制台错误。javascript 是内联脚本,设置传单地图的地图图标和传单地图的一些变量以及是否使用 Javascript 本地存储的标志:<script>/* Leaflet flags.... there are about 20 of these loaded */ var auxIcon = L.icon({ iconUrl: '/images/map_icons/auxIcon.png', iconSize: [18, 24], iconAnchor: [0, 24], popupAnchor: [10, -20]}); /*@*/var vgsIcon = L.icon({ iconUrl: '/images/map_icons/VGS_30.png', iconSize: [25, 30], iconAnchor: [0, 30], popupAnchor: [10, -15]}); /*@*/var zoomValueLevel = 5; /*@*//* Map zoom level */var useLS = 1; /*@*//* Use local storage for Leaflet map position? */if(useLS === true && localStorage.getItem('zoomLevel')) { zoomValueLevel = parseInt(localStorage.getItem('zoomLevel'));}......</script>该错误始终表明;出现了错误,并且需要一个表达式。然而,该错误出现在不同的地方,显然是任意的。错误发生在/*@*/上面标记的每个位置,我不知道为什么会发生这种情况,但以前没有发生过。
1 回答
慕码人8056858
TA贡献1803条经验 获得超6个赞
于是我知道了那是什么;
我仔细观察了变量设置;并发现zoomValueLevel
和useLS
vars 都使用了 JSHint(在 PhpStorm 上)抱怨“幻数”的东西;这些值在某种程度上很特殊,其中变量被赋予不带引号的数值。
所以; 我做了两件事:我将标志值更新为真布尔值而不是 0/1 伪布尔值,因此它的输出实际上是true
or false
,并且我将缩放级别设置为与之前相同的数值,但在单引号内。
我不知道为什么这个错误只在第一次加载页面时发生,而在其他时候没有错误,我也不知道为什么这个错误之前没有显示出来,但解决方案似乎是删除 JSHint调用“幻数”并始终将数字括在引号中,并使用布尔标志变量的完整文本表示。
var zoomValueLevel = '5'; var useLS = true;
这立即消除了问题,并且页面现在在加载时不再反馈任何控制台错误。我希望这对某人有用。
添加回答
举报
0/150
提交
取消