3

我在这里的浏览器有一些奇怪的经历。下面的这段代码已经上传到这个 URL:http ://roberthanson.net/index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script src="scripts/jquery-1.6.4.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function($) {
        $('ul li').click(function() {
            $('input#shareto').val($(this).data('val'));
        });
    });​
</script>
</head>

<body>

<form>
<ul>
<li data-val="0-1">
<a href="#" title="" class="selected"><span class="to-admin">Administrator</span></a>    
</li>

<li data-val="1-1">
<a href="#" title=""><span class="to-finance">Finance</span></a>    
</li>

<li data-val="1-0">
<a href="#" title=""><span class="to-technician">Technician</span></a>
</li>

<li data-val="0-0">
<a href="#" title=""><span class="to-lawyer">Legal</span></a>    
</li>
</ul>
<input id="shareto" type="text" value="1-0" name="shareto">
​
​&lt;/form>​​​​​​​​

</body>
</html>

当我在 Linux 上使用 Microsoft Internet Explorer 和 Firefox 打开时,这些代码运行良好。该值会根据点击的 LI 标签而变化。但我没有看到这种行为发生在我的 Mac 上。我在 Mac 上安装的所有浏览器(Safari、Chrome 甚至 Firefox 本身)的结果都与我在 IE 或 Firefox 上的不同。

只有我有这种经历吗?还是我们有一些额外的代码让它适用于 Mac?之前谢谢。

4

1 回答 1

5

好的,我尝试了您的代码,但它在 Linux 上的 Chromium 上对我不起作用。

我得到的错误Unexpected token ILLEGAL在第 12 行。

我将您的代码复制粘贴到 vim 以检查诸如括号匹配和其他可能导致这些问题的内容。这样做后,我在我的 vim 缓冲区中看到了这个:

`<200b>`

这就是 vim 在无法渲染字符时所做的事情。快速浏览 Wikipedia 显示 U+200b 是 ZWSP 或零宽度空间。我不知道一个不可见的字符是如何进入您的代码的,但似乎 JavascriptCore,Webkit javascript 引擎不喜欢这些字符,但 V8 和 SpiderMonkey(我认为?无论如何是 FF 的)都可以。

简而言之,解决方法是删除});脚本块末尾的不可见字符。您可以像删除任何字符一样执行此操作,只是看不到任何区别。

于 2012-07-27T06:18:04.513 回答