【问题标题】:Why JavaScript is not working in HTTPS on my site为什么 JavaScript 在我的网站上无法使用 HTTPS
【发布时间】:2015-09-28 02:32:52
【问题描述】:

我刚刚将 HTTPS 添加到我的网站,显然我网站上的唯一脚本已停止工作。我不认为这是脚本的问题,但这里是:

function cambiarPestanna(pestannas, pestanna) {

    pestanna = document.getElementById(pestanna.id);
    listaPestannas = document.getElementById(pestannas.id);

    cpestanna = document.getElementById('c' + pestanna.id);
    listacPestannas = document.getElementById('contenido' + pestannas.id);

    i = 0;
    while (typeof listacPestannas.getElementsByTagName('div')[i] != 'undefined') {
        $(document).ready(function() {
            $(listacPestannas.getElementsByTagName('div')[i]).css('display', 'none');
            $(listaPestannas.getElementsByTagName('li')[i]).css('background', '');
            $(listaPestannas.getElementsByTagName('li')[i]).css('padding-bottom', '');
        });
        i += 1;
    }

    $(document).ready(function() {
        $(cpestanna).css('display', '');
        $(pestanna).css('background', 'white');
        $(pestanna).css('padding-bottom', '2px');
    });

}

这个问题的解决方法是什么?

【问题讨论】:

  • 你使用chrome开发工具发现错误了吗?
  • 你如何包含这个脚本文件,显示<script>标签代码
  • 脚本也必须通过 HTTPS 加载。
  • 它说:Uncaught ReferenceError: $ is not defined
  • 它无法加载 jQuery 库,所以它停在那里删除了 jquery 导入的 src 中的 http: 部分

标签: javascript https


【解决方案1】:

像这样添加您的 jQuery 文件,而不明确提及协议:

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

src 中删除http: 部分意味着您不想使用您在src 中提到的固定协议加载外部文件/资源​​。相反,您希望使用要求资源所在的相同协议加载外部资源。

【讨论】:

    【解决方案2】:

    以这种方式加载页面上的所有脚本:

    &lt;script src="//domain.com/path/script.js"&gt;&lt;/script&gt;

    主要部分是//——它告诉浏览器使用当前协议——在你的例子中是 HTTPS。

    例如,来自 CDN 的最新版本的 jQuery:

    &lt;script src="//code.jquery.com/jquery-2.1.4.min.js"&gt;&lt;/script&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-28
      • 2016-09-28
      • 2022-01-25
      • 1970-01-01
      • 2018-09-10
      • 2017-12-14
      • 2013-04-24
      • 2022-07-22
      相关资源
      最近更新 更多