2015-12-08 9 views
12

मैं node.js पर्यावरण के भीतर चल रहा हूं, और यह ठीक चल रहा है। फिलहाल मैं सिर्फ स्थानीय फोंट का उपयोग कर रहा हूं, लेकिन google web fonts फ़ैंटोमज के साथ काम करना चाहता हूं।फैंटोमज + वेब फोंट + फ़ॉन्ट लोडर

phantomjs के साथ काम करने के लिए वेब फोंट को कैसे और कैसे बनाया जा सकता है, इस बारे में विभिन्न विवादित और भ्रमित रिपोर्टें हैं। this जैसे लेख हैं जिनमें मृत लिंक के साथ पुरानी जानकारी है। और this जैसी पोस्टें जो बताती हैं कि फ़ैंटोमज 2.0 वेब फोंट का समर्थन या समर्थन कर सकता है, अन्य लोग कह रहे हैं कि यह 2.0.1 होगा। this पोस्ट में एक सुझाव है कि वेबफॉन्ट 2.0 में काम करते हैं।

मैंने phantomjs 2.0 और 2.0.1 बाइनरी सहित कई विकल्पों का प्रयास किया है, लेकिन यह काम नहीं कर सकता है। हो सकता है कि मैं web font loader उपयोग करते हुए मेरे js में वेब फोंट लोड हो रहा है कर रहा हूँ निम्नलिखित के साथ कुछ का उपयोग कर:

WebFont.load({ 
    google: { 
     families: ['Droid Sans', 'Droid Serif'] 
    }, 
    loading: function() { console.log('loading'); }, 
    active: function() { 
     console.log('active'); 
     // hooray! can do stuff... 
    }, 
    inactive: function() { console.log('inactive'); }, 
    fontloading: function(familyName, fvd) { console.log('fontloading', familyName, fvd); }, 
    fontactive: function(familyName, fvd) { console.log('fontactive', familyName, fvd); }, 
    fontinactive: function(familyName, fvd) { console.log('fontinactive', familyName, fvd); } 
}); 

लेकिन मैं हमेशा inactive शाखा तक पहुंच रही है, इसलिए फॉन्ट लोड कभी नहीं सफल हुआ ... । भले ही एक ही कोड एक ब्राउज़र में ठीक काम करता है (तक पहुँचने active शाखा

font loader docs में, यह कहते हैं:

वेब फ़ॉन्ट लोडर निर्धारित करता है कि मौजूदा ब्राउज़र का समर्थन नहीं करता @font-face, वें ई inactive घटना ट्रिगर की जाएगी।

मेरे संदेह है कि वेब फ़ॉन्ट लोडर वास्तव में यह पता लगाना है कि ब्राउज़र (phantomjs) इस का समर्थन नहीं करता है, इसलिए हमेशा inactive तक पहुंच गया है।

किसी को भी phantomjs + वेब फोंट + वेब फ़ॉन्ट लोडर काम कर रहा है?

उत्तर

4

यूए आप क्या उपयोग कर रहे हैं? मुझे लगता है कि वेब फ़ॉन्ट लोडर समर्थन का पता लगाने के लिए UA का उपयोग करता है। क्रोम 46 का UA का प्रयास करें और फिर देखें कि यह काम करता है या नहीं।

var webPage = require('webpage'); 
var page = webPage.create(); 
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36'; 
+0

दुःख की बात है phantomjs के साथ इस की कोशिश की :-(कोई फर्क नहीं 1.9.8, 2.0.0 और 2.0.1 ... हर बार जब यह केवल 'निष्क्रिय' शाखा – drmrbrewer

+2

तक पहुंचता है तो मैंने केवल [email protected] के साथ प्रयास किया, हमें बदलना erAgent। लॉग: 'लोडिंग',' सक्रिय' .. – cviejo

+0

क्या आपके पास @cviejo साझा करने के लिए कोई कोड स्निपेट है? मैं अभी भी इसे 'सक्रिय' शाखा में नहीं ला सकता ... – drmrbrewer

2

सही के रूप में चिह्नित नहीं किया जाना चाहिए, बस उपर्युक्त उत्तर पर विस्तार करना। चूंकि सभी phantomjs wrappers (जैसे phridge और phantomjs-node) मूल रूप से एक नई प्रेतोज़ प्रक्रिया को जन्म देते हैं, परिणाम नोडजेस संदर्भ से चलने पर समान होना चाहिए।

phatomjs-webfonts.html:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>PhantomJS WebFontsTest</title> 
</head> 
<body> 
<script src="https://ajax.googleapis.com/ajax/libs/webfont/1.5.18/webfont.js"></script> 
<script> 
    WebFont.load({ 
     google: { 
      families: ['Droid Sans', 'Droid Serif'] 
     }, 
     loading: function(){ console.log('WebFonts loading'); }, 
     active: function(){ console.log('WebFonts active'); }, 
     inactive: function(){ console.log('WebFonts inactive'); } 
    }); 
</script> 
</body> 
</html> 

phantomjs-वेबफ़ॉन्ट।js:

var page = require('webpage').create(); 

page.settings.userAgent = 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36'; 

page.onConsoleMessage = function(msg, lineNum, sourceId) { 
    console.log('Console: ' + msg); 
}; 

page.open('http://<server-address>/phantomjs-webfonts.html', function(status) { 
    console.log("Loading status: " + status); 
}); 

कमान:

phantomjs phantomjs-webfonts.js 

आउटपुट:

Console: WebFonts loading 
Console: WebFonts active 
Loading status: success 
+0

प्रेतोज़ का क्या संस्करण? '$ phantomjs -v' – drmrbrewer

+0

[email protected] – cviejo

+0

मुझे नहीं पता था कि यहां तक ​​कि 1.9.1 9 भी था? Http://phantomjs.org/release-1.9.html देखें या क्या आप वर्तमान में phantomjs npm पैकेज https://www.npmjs.com/package/phantomjs का जिक्र कर रहे हैं जिसमें वर्तमान में 1.9.19 का संस्करण है? – drmrbrewer

संबंधित मुद्दे