2013-02-15 53 views
8

मैं नीचे दिए गए फ़ंक्शन (जीडब्ल्यूटी) का उपयोग करके HTML मेटा-टैग गतिशील रूप से बना रहा हूं। इसे डोम पर रखने के लिए 1 सेकंड लगते हैं। फेसबुक के अलावा यह ठीक काम कर रहा है। जब मैं अपने वेब से एक लिंक साझा करता हूं, तो स्क्रैपर को मेटा-टैग मिलते हैं जो HTML में हैं: कोई भी नहीं। मैं इसे कैसे ठीक करूं?फेसबुक स्क्रैपर गतिशील मेटा टैग लोड नहीं करता

/** 
* Include the HTML attributes: title, description and keywords (meta tags) 
*/ 
private void createHTMLheader(MyClass thing) { 

    String title=thing.getTitle(); 
    String description=thing.getDescription(); 

    Document.get().setTitle(title); 

    MetaElement metaDesc = Document.get().createMetaElement(); 
    metaDesc.setName("description"); 
    metaDesc.setContent(description); 
    NodeList<Element> nodes = Document.get().getElementsByTagName("head"); 
    nodes.getItem(0).appendChild(metaDesc); 
} 

यह डोम पर परिणामी HEAD है। शीर्षक aaaa और मेटा-विवरण गतिशील रूप से लोड किया गया है। (टिप के लिए धन्यवाद सीबीरो)। "स्रोत देखें" कार्यक्षमता में, ये गतिशील टैग प्रदर्शित नहीं होते हैं (केवल डेवलपर टूल पर - डोम देखें)।

<head> 
    <title>aaaa</title> 
    <meta content="text/html; charset=utf-8" http-equiv="content-type"> 
    <meta name="description" content="My description"> 

    <script language="javascript" type="text/javascript" src="dialective/dialective.nocache.js"></script><script defer="defer">dialective.onInjectionDone('dialective')</script> 

</head> 

मूल HTML में कोई शीर्षक या मेटा-वर्णन टैग नहीं है।

+1

क्या आप वास्तव में जेनरेट करते हुए HTML दिखा सकते हैं? –

+0

धन्यवाद। बस – Arturo

+1

जोड़ा गया है क्या आप जावा ऐप या कुछ के साथ HTML टैग जोड़ने की कोशिश कर रहे हैं? फेसबुक स्क्रैपर आपके जावा कोड को चलाने वाला नहीं है। यह ठीक से देखेंगे कि आपका वेब सर्वर क्या भेज रहा है। –

उत्तर

11

फेसबुक स्क्रैपर केवल सर्वर से मूल HTML प्रतिक्रिया में शामिल <meta> टैग देख सकता है। यह किसी भी जावास्क्रिप्ट कोड, फ्लैश प्लगइन्स, जावा एप्लेट्स, या किसी अन्य चीज को चलाने के लिए "पर्याप्त स्मार्ट" नहीं है जो एक पूर्ण ब्राउज़र चला सकता है।

आपको सर्वर साइड फ्रेमवर्क का उपयोग कर सर्वर पर इन <meta> टैग जेनरेट करने की आवश्यकता होगी।

इसके अलावा, यह सुनिश्चित करने के लिए कि आपका पृष्ठ उपयुक्त मेटा टैग का खुलासा करता है, फेसबुक एक आसान testing tool प्रदान करता है। आपको ओपनग्राफ टैग भी जोड़ना पड़ सकता है, जैसे og:title और og:description

+0

हाय माइक, फेसबुक स्क्रैपर के बारे में आपने जो बिंदु बनाया है, केवल मूल 'एचटीएमएल को देखकर मुझे यह पता चला है कि मुझे ओपी के समान समस्या है। हालांकि मुझे लगा कि अगर मैंने डीओएम में बदलाव किए जाने के बाद $ .getScript का उपयोग करके AddThis को लोड किया। मेरे सिद्धांत में इस तरह एफबी केवल नए डोम के साथ स्क्रैप करने के लिए पहुंच जाएगा। लेकिन क्या यह संभव नहीं है? मुझे डर है कि जब AddThis आग और एफबी शेयर क्लिक किया जाता है तो यूआरएल एफबी को पास कर दिया जाता है और फिर यह साझा यूआरएल का एक स्वतंत्र स्क्रैप करता है जिसमें जावास्क्रिप्ट संपादित मेटा टैग नहीं होता है। आपका इस पर कोई विचार है? डैनियल। –

-1

किसी कारण से, मेटा वर्णन ऊपर समारोह के साथ भरी हुई नहीं किया गया है ...

है ऐसा इसलिए है क्योंकि आप एक नया MetaElement केवल बनाने हैं - लेकिन आप इसके साथ कुछ नहीं कर

आपको को दस्तावेज़ में संलग्न करना है, जो head तत्व के लिए अधिक विशिष्ट है।

कुछ की तरह

getHead().appendChild(metaDesc) 

याद आ रही है।