2014-09-03 79 views
4

我正在構建一個web應用程序,並剛剛安裝了ssl。Modernizr爲什麼要加載Google字體?

一切似乎都很好,除了我得到的有關通過不安全的連接加載字體的這兩個錯誤。控制檯表明這是Modernizr正在做的事情,但我無法弄清楚在哪裏以及如何解決它。

這裏是控制檯輸出:

The page at 'https://myawesomewebsite.com/' was loaded over HTTPS, but ran insecure content from 'http://themes.googleusercontent.com/static/fonts/rosarivo/v1/OGdIq-p0tOtBN2VMVvO9W_esZW2xOQ-xsNqO47m55DA.woff': this content should also be loaded over HTTPS. 
modernizr-2.8.0.min.js:4 
The page at 'https://myawesomewebsite.com/' was loaded over HTTPS, but ran insecure content from 'http://themes.googleusercontent.com/static/fonts/inconsolata/v5/BjAYBlHtW3CJxDcjzrnZCIbN6UDyHWBl620a-IRfuBk.woff': this content should also be loaded over HTTPS. 
modernizr-2.8.0.min.js:4 

我實際使用TypeKit我的字體,所以我不知道這些谷歌的字體是做網頁上,爲什麼Modernizr的將被加載它們。

回答

1

在modernizr的完整版本中,針對CCS3支持有@ font-face的測試。我相信這個測試代碼加載一些字體只是爲了看看是否工作。

如果您不需要這樣做,請使用modernizr頁面上的構建配置程序將其從自定義構建的庫中排除。

順便說一下,現代化的新版本似乎通過SSL加載字體。

測試代碼的Modernizr 2.8.3

/*>>fontface*/ 
// @font-face detection routine by Diego Perini 
// javascript.nwbox.com/CSSSupport/ 

// false positives: 
// WebOS github.com/Modernizr/Modernizr/issues/342 
// WP7 github.com/Modernizr/Modernizr/issues/538 
tests['fontface'] = function() { 
    var bool; 

    injectElementWithStyles('@font-face {font-family:"font";src:url("https://")}', function(node, rule) { 
     var style = document.getElementById('smodernizr'), 
      sheet = style.sheet || style.styleSheet, 
      cssText = sheet ? (sheet.cssRules && sheet.cssRules[0] ? sheet.cssRules[0].cssText : sheet.cssText || '') : ''; 

     bool = /src/i.test(cssText) && cssText.indexOf(rule.split(' ')[0]) === 0; 
    }); 

    return bool; 
}; 
/*>>fontface*/ 

// CSS generated content detection 
tests['generatedcontent'] = function() { 
    var bool; 

    injectElementWithStyles(['#',mod,'{font:0/0 a}#',mod,':after{content:"',smile,'";visibility:hidden;font:3px/1 a}'].join(''), function(node) { 
     bool = node.offsetHeight >= 3; 
    }); 

    return bool; 
}; 
+0

你說得對。我應該只使用自定義構建。 – raphaeltm 2014-09-03 14:45:12

+2

哦,我只是想說,使用最新版本並沒有解決問題。我現在有2.8.3,有了這個代碼,它仍然通過http加載字體,我不知道爲什麼。使用這個文件:http://modernizr.com/downloads/modernizr-latest.js 我得到這是一個問題,在行462,這使我非常困惑,因爲該行是:'bool = node.offsetTop == = 9;' – raphaeltm 2014-09-03 14:49:13

+1

Hrmppf,很高興知道。我被「https://」欺騙了。你說得對。他們在那裏使用了很多黑魔法。 ; o) – 2014-09-03 14:51:17

相關問題