2012-07-21 53 views
1

我正在研究HTML5 Boilerplate模板和Modernizr。在测试某些功能时,我尝试着实施一些polyfills。 好吧,一切似乎工作正常,但铬得到一个错误:它似乎尝试在Modernizr后立即加载jQuery,即使它不应该!事实上,Modernizr下面没有脚本标记... Chrome在做什么?Modernizr和jQuery的Chrome问题

The image shows Chrome Dev Tools

+0

这是一个实际的屏幕截图? – 2012-07-21 10:00:17

+0

是的,是的。取自开发者工具,就像 – Carlo 2012-07-21 10:05:04

+1

已解决!如果网页在线,Chrome工作正常。只有当我打开文件的本地副本时弹出错误... – Carlo 2012-07-21 10:14:17

回答

4

这是因为你在加载//ajax.googleapis.com。

它必须是http:或https:

然后,它会在本地工作。

我目前正试图找出解决这个问题的一种自动方法。像...如果https能够,然后https:其他http:

解决方案:好的,你可以写一个JS单行三元来检测文件:协议,然后分配https:或http:,或者你可以简单通过像WAMP这样的服务器运行你的网站,它会检测协议。

https://github.com/h5bp/html5-boilerplate/blob/master/doc/faq.md

+0

公平起见,我认为这不是导致错误的协议相对url,而是它不在服务器上运行。 'file:'实际上是正在使用的正确协议。但是,http或https帮助:) – drublic 2012-09-19 20:12:00

+0

你stalkin我? :) – Cory 2012-09-19 20:30:23

+0

哈哈:D Nah,刚刚访问了您在HTML5 Boilerplate的问题中发布的链接。 – drublic 2012-09-19 21:41:09

0

我觉得dru​​blic是正确的。看起来你正在从本地磁盘打开该页面,而不是通过Web服务器。

如果您没有在链接资源中指定协议(方案),浏览器将使用与托管页面相同的协议。所以使用//ajax.googleapis.com...是正确的,并且不需要特殊的脚本来推断使用的协议。

这里是相关stackoverflow question

指向这个blog post