【问题标题】:JQuery does not work in Firefox but works in ChromeJQuery 在 Firefox 中不起作用,但在 Chrome 中起作用
【发布时间】:2015-12-15 10:16:27
【问题描述】:

我在使用 jQuery 和 Mozzila Firefox 时遇到问题。 在 Chrome 中一切正常,但不知何故 Firefox 看不到 jQuery。

这就是我调用 jQuery 的方式

 <!-- Favicon and touch icons -->
    <link rel="shortcut icon" href="assets/ico/favicon.png">


    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
    <script type="text/javascript" src="assets/bootstrap/js/datepicker.js"></script>

这就是失败的地方(错误是:ReferenceError: $ is not defined):

 <script>
        function ajax_check(){

            var id = $("#xml_select").val(); // this is the line where I get error

             $.ajax({
                    url: "ajax_check.php?id="+id,
                    success: function(response) {

                        var result = jQuery.parseJSON(response);

                       //console.log( JSON.stringify(result['ncp'].replace('"','')) );

                       var ncp = JSON.stringify(result['ncp']);
                       var id = JSON.stringify(result['id']);


                       $("#racun").val(ncp.substring(1,12));

                       $("#id_podnosilac").val(id.substring(1,5));
                    }, 
                  });

        }
</script>

请帮忙,这可能是什么原因造成的?

【问题讨论】:

  • 你遇到了什么错误?
  • 可能只是 FF 浏览器的缓存问题...否则,您的代码将起作用。
  • 发出完整请求 Ctrl +F5
  • 你也应该提到错误!
  • @RayonDabre (error is: ReferenceError: $ is not defined)

标签: javascript jquery css google-chrome firefox


【解决方案1】:

您将根据加载时间/不同的浏览器随机收到此错误。因为根本原因是您正在从 googleapis 加载 jquery.min.js。第三方域资源将获得比本地域资源低的优先级。一旦加载了本地域资源,就会触发“文档就绪”函数语句。这就是您收到此错误的原因。

永久解决方案:将 jquery.min.js 文件放入您的服务器并从您的域调用它。即使您的页面存在加载时间问题并且在任何浏览器中,此解决方案也能正常工作。

【讨论】:

  • 这并不总能解决问题。在我的例子中,我已经从我的服务器加载了 jQuery,但是我在 DOM 的末尾包含了 jQuery 和我的 JS,这导致了同样的错误。将它放在 中会有所帮助,但仍有大约 10% 的时间会失败。
  • 后续:在多个地方包含 jQuery 似乎让 firefox 感到困惑。这对我来说消除了最后 10%。
【解决方案2】:

A.Wolf找到的解决方案

当我按照A.Wolf 的建议发出几个完整的请求(ctrl+f5)时,Firefox 开始正常工作。

【讨论】:

  • 作为开发人员,我们不能指望网站的用户按 ctrl+f5。大多数用户不知道这一点。我们应该给出永久的解决方案。
【解决方案3】:

在你的代码中使用“jQuery”这个词(不带引号)而不是 $

【讨论】:

    【解决方案4】:

    这个问题甚至在 3 年后仍然存在。有些人只是将 jquery 用于 $ 函数,这很荒谬。一个人可以自己编程。

    $ = document.getElementById 或 ByClass 在 DOM 中搜索的方式有很多种,并且出现了新的搜索方式。

    我在加载文档时遇到了分配函数的问题,这个问题已经解决了 here

    【讨论】:

      【解决方案5】:

      按照A.Wolf 的建议。您需要按“ctrl+f5”键。有时由于缓存而发生。使用“ctrl+shift+delete”并清理浏览器缓存,然后运行您的代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-03
        • 1970-01-01
        • 1970-01-01
        • 2015-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多