【问题标题】:This jQuery Is Not Working On Mac, But Works On Linux And Windows这个 jQuery 不能在 Mac 上运行,但可以在 Linux 和 Windows 上运行
【发布时间】:2012-07-27 06:00:32
【问题描述】:

我在这里的浏览器有一些奇怪的体验。下面的这段代码已经上传到这个网址: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">
​
​</form>​​​​​​​​

</body>
</html>

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

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

【问题讨论】:

  • $(document).ready(function($)的'function($)'里面的'$'有什么用?
  • 实际上我从我之前的帖子中得到了那个代码:stackoverflow.com/questions/11675032/…,所以我不知道那个美元符号是用来做什么的。
  • 在古老的 JQuery 传统中......
  • 喜欢 1999 年的老式 doctype!

标签: php jquery macos


【解决方案1】:

好的,我尝试了您的代码,但它不适用于 Linux 上的 Chromium。

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

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

`<200b>`

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

简而言之,修复方法是删除脚本块末尾}); 之后的不可见字符。您可以像删除任何字符一样执行此操作,只是看不出有什么不同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-05
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 2019-03-07
    • 2011-07-26
    相关资源
    最近更新 更多