如何在需要时通过HTTPS包含CSS和JS文件?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (123)

我将一个外部CSS文件和一个外部JS文件添加到我的页眉和页脚。当加载HTTPS页面时,一些浏览器报错说我正在加载不安全的内容。

当页面本身为HTTPS时,是否有一种简单的方法可以让浏览器通过HTTPS加载外部内容?

提问于
用户回答回答于

使用协议相对路径。

因此没有

<link rel="stylesheet" href="http://example.com/style.css">
<script src="http://example.com/script.js"></script>

但如此

<link rel="stylesheet" href="//example.com/style.css">
<script src="//example.com/script.js"></script>

然后它将使用父页面的协议。

用户回答回答于

你可以使用像这样的东西:

<script type="text/javascript">
  var protocol = (
      ("https:" == document.location.protocol) 
      ? "https" 
      : "http"
  );
  document.write(
      unescape(
          "%3Cscript"
              + " src='"
                  + protocol 
                  + "://"
                  + "your.domain.tld"
                  + "/your/script.js"
              + "'"
              + " type='text/javascript'
          + "%3E"
          + "%3C/script%3E"
      ) // this HAS to be escaped, otherwise it would 
        // close the actual (not injected) <script> element
  );
</script>

外部CSS包括也可以做同样的事情。

扫码关注云+社区

领取腾讯云代金券