我在本地开发期间发现 - 正在插入页面。它的行:â€<â€<â€<†-
这是一个基本页面,通过CodeKit托管在本地Web服务器上。但是,当我直接从PC加载页面作为file://,在资源管理器中双击它时,也会发生此问题。
最初,该文件包括:
<html>
<head>
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script>
/* Some JS */
</script>
</head>
<body>
</body>
</html>
我非常困惑,所以我尝试向其添加doctype <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
仍然没有运气,然后通过谷歌搜索我注意到关于字符集的事情,所以我添加了UTF-8。 <meta charset="UTF-8">
哦,它消失了。但并不完全。检查来源,​
现已更改为​
,但在页面上不再显示。也被称为零宽度空间? (经过一些谷歌搜索)。
为什么会这样?
最终代码,现在Chrome Dev Tools Inspector中显示零宽度空间。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script type="text/javascript">
/* With or without JS code in these, the issue occurs */
</script>
</head>
<body>
Hello World
</body>
</html>
进度:
我最终删除了所有的JS,但保留了脚本标记,并设法将其缩小到由<script></script>
标记引起的。即使空虚。如果没有这些,则不会在页面上或在Inspector中显示奇怪的字符。
为什么会这样?我知道最佳实践是使用外部JS文件,但为什么会这样。很奇怪。
相关问题可以在这里找到参考,这有点帮助,但仍然无法解决,因为问题与我的不同:Why is "​" being injected into my HTML?
更新1 哎呀。菜鸟错误。忘记脚本标记不是自动关闭。改变了,但仍然有问题。更正了上述最终代码。
更新2 根据我的答案修正了问题。虽然没有找到解释为什么会发生这种情况。
更新3 有些人仍然对此投票,所以我觉得我必须解释。是的,得到高票的答案之一概述了关闭标签的错字。是的,在我复制到SO时,这是一个错字。原始代码没有自闭标签。无论哪种方式,它对OP问题没有影响,这就是出现这些随机字符的原因。
答案 0 :(得分:4)
你的html脚本部分无效(形式不正确)。你有:
<script src="https://code.jquery.com/jquery-2.1.1.min.js" />
<script>
</script>
应该是:
<script src="https://code.jquery.com/jquery-2.1.1.min.js">
</script>
答案 1 :(得分:1)
我已将您的代码粘贴到Notepad
中的Windows
,然后在本地保存并从FireFox
和Chrome
浏览,但没有看到您的问题。
这可能是因为有问题的jQuery加载而导致的。尝试排除加载jQuery
或尝试在本地加载,而不是从CDN
或任何在线位置加载。
您还可以查看类似的问题:Why are these wierd characters being inserted in Facebook iframe when using jQuery? ​
答案 2 :(得分:0)
自我回答,因为我没有找到代码中奇怪的外观的解释,但我确实找到了解决问题的方法。
将旧文件中的所有其他代码复制到一个全新的空白文件中,逐块复制,完全替换它,问题就会消失。
这意味着它必须是字符编码问题或什么? Sublime是纯文本,所以看起来很奇怪。但是,它现在消失了。而且我认为这将是其中一个无法解释的问题,因为它无法被其他人复制。对于将来在Google中发现此功能的其他人有用。只需将代码块逐块复制到新文件中......
解决方案/解决方法修复,没有理由说明为什么一切都发生在......:s
答案 3 :(得分:0)
我在Mac上遇到了同样的问题:这是问题所在。我从PDF中复制了粘贴,所以我添加了一些仅在浏览器上显示的特殊字符。解决方案是删除一些字符,然后手动重新输入。