代码之家  ›  专栏  ›  技术社区  ›  Dan Beam

在<script>的源中使用//

  •  14
  • Dan Beam  · 技术社区  · 14 年前

    我想知道是否有人在使用古老的http/https javascript方面有任何资源、证据或个人经验 <script> 乱劈:

    <script src="//someserver.com/js/script.js"></script>
    

    是否有人在这些浏览器中遇到问题(即5.5+、ff2+、chrome、opera 9+、safari 3+)?有人有成功的故事吗?

    4 回复  |  直到 12 年前
        1
  •  24
  •   Daniel Vassallo    14 年前

    所有现代浏览器都能理解这种格式,包括IE 6。(对IE 5.5不确定)。

    实际上,这不是一个黑客,而是一个完全有效的URI语法 RFC 3986: Section 4.2 . 所以,我说你很高兴去。

        2
  •  9
  •   Wil Moore III    13 年前

    我可以告诉你你到底在找什么。这是一个RFC文档,所以你必须筛选大量的噪音才能得到你想要的,但这是一个合法的 特征 (不是黑客)假定的HTTP客户端。

           b) If the embedded URL starts with a scheme name, it is
              interpreted as an absolute URL and we are done.
    
           c) Otherwise, the embedded URL inherits the scheme of
              the base URL.
    

    阅读更多信息: http://www.faqs.org/rfcs/rfc1808.html (搜索标题“解析相对URL”并参见下面的步骤1和2)或此处: http://freesoft.org/CIE/RFC/1808/18.htm

    作为一个参考,我在几乎所有的生产项目中都使用它——不仅仅是用于JS资源,还用于链接到其他资源(如图像和CSS)的链接(更新:我不再使用它来链接样式表)。

    几乎可以在任何地方工作。我在ie、ff、opera、chrome、safari/webkit中尝试过这一功能,它们都可以追溯到以前的多个版本(如果适用)。

    示例:

    • <img src=“//static.example.com/img/token.png”/>gt;
    • <script type=“text/javascript”src=“//static.example.com/js/jquery.js”>

    我发现这个方法比编写代码来确定我们是否使用HTTP/HTTPS更干净。

    唯一需要注意的是,您不应该将其用于样式表。

    以下各项合法有效:

    • <link rel=“stylesheet”type=“text/css”href=“//static.example.com/css/screen.css”media=“screen”/>gt;

    在IE中,上述操作将导致两个HTTP请求。目前,这会影响IE7、IE8和早期版本的IE9。

    换句话说,方案相关的URI应该/可以用于除样式表之外的所有资源。

        3
  •  2
  •   Community Mike Kinghan    7 年前

    自从我问起我就一直在使用这个模式 this question 我没有任何问题。我看到它在每个浏览器中都能正常工作,包括IE5.5。(我所做的大部分工作都需要JavaScript,并且此方法中包含了一些JS。)

        4
  •  1
  •   Shermozle    14 年前

    我认为人们对此感到困惑的原因可能是谷歌分析的标准代码包含对基于协议的主机名做了一些复杂的事情。然而,我怀疑这是因为他们的ssl主机名与非ssl主机名不同,这是因为我想象的某些网络原因。