【问题标题】:JS assets in a subdomain wont load on ff & ie but chrome is all good子域中的 JS 资产不会在 ff & ie 上加载,但 chrome 都很好
【发布时间】:2013-05-08 01:37:17
【问题描述】:

我们正在构建一个 Saas 产品并购买了一个引导仪表板,所有 JS/CSS 资产都通过我们的 CDN 通过 sobdomain 加载。

在 chrome 上完美运行,但在 ie 和 ff 上组件无法正确加载,在 ff 上出现以下错误: TypeError:无法访问死对象 ReferenceError: 事件未定义

下面是一个非工作示例的链接(出于商业原因,我们不想授予对工作仪表板的访问权限)您可以在单击“下拉”菜单项时看到错误。据我所知,所有资产都正确加载。

http://hunchbuzz.com/acme/index.html

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript css ssl cloudflare


    【解决方案1】:

    好吧,一一解决你的错误。您在 IE 中测试页面时是否打开了 JavaScript 调试器?在 F12 开发人员工具中,选择脚本,然后选择开始调试。

    首先,jquery.sparkline.min.js 中有几个错误,我暂时忽略了这些错误。然后我尝试单击您的“下拉”链接并收到此错误:

    SCRIPT438: Object doesn't support property or method 'preventDefault' 
    custom.js, line 3 character 1193
    

    突出显示的代码是(重新格式化以提高可读性):

    $('.dropmenu').click( function(){
        event.preventDefault();
        // ...
    });
    

    你看到问题了吗? event 是什么?代码应该是:

    $('.dropmenu').click( function( event ){
        event.preventDefault();
        // ...
    });
    

    它在任何浏览器中都能正常工作的事实可能是由于某些浏览器为兼容非常旧的代码而创建的全局 event 变量。

    现在回到迷你图问题。我看到它在jquery.sparkline.min.js 中遇到了两个错误,但是使用最小化的代码,问题并没有像另一个问题那样突然出现在我身上。

    在调试时,加载jquery.sparkline.jscustom.js、jQuery 等的非缩小版本会有很大帮助。然后你将在调试器中查看可读代码,这应该更容易发现这些问题。

    【讨论】:

    • 谢谢,我看看这个并取消缩小源代码。令我困惑的是,当我将资产放在子文件夹而不是子域中时,它可以完美运行。
    猜你喜欢
    • 2011-01-02
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多