Spaces:
Sleeping
Sleeping
File size: 1,653 Bytes
eacff74 430cab9 eacff74 d53547c eacff74 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
const map = require('licia/map')
const modernizr = require('./modernizr')
let featureList = require('../script/featureList.json')
let featureNames = featureList['feature-detects'],
specialNames = featureList['special-names']
module.exports = function (eruda) {
let { evalCss } = eruda.util
class Features extends eruda.Tool {
constructor() {
super()
this.name = 'features'
this.displayName = 'ブラウザの機能'
this._style = evalCss(require('./style.scss'))
this._features = {}
this._isInit = false
}
show() {
super.show()
if (!this._isInit) this._initFeatures()
}
hide() {
super.hide()
}
destroy() {
super.destroy()
evalCss.remove(this._style)
}
_initFeatures() {
this._isInit = true
modernizr.testRunner()
let i = 0,
featureNum = featureNames.length
featureNames.forEach((feature) => {
if (specialNames[feature]) feature = specialNames[feature]
feature = feature.replace(/\//g, '')
modernizr.on(feature, (result) => {
this._features[feature] = result
i++
if (i === featureNum) this._render()
})
})
}
_render() {
const features = map(this._features, (feature, key) => {
const ok = feature ? 'eruda-ok' : ''
return `<li>
<a href="http://caniuse.com/#search=${key}" target="_blank" class="eruda-inner-wrapper ${ok}">
${key}
</a>
</li>`
}).join('')
const html = `<ul>${features}</ul>`
this._$el.html(html)
}
}
return new Features()
}
|