2012-10-04 7 views
9

मैं w3 सत्यापनकर्ता में निम्न त्रुटि हो रही है,तत्व नाम जीसीएसई: खोज बॉक्स-केवल XML के रूप में नहीं दर्शाया जा सकता 1.0

Line 62, Column 140: Element name gcse:searchbox-only cannot be represented as XML 1.0. 

मैं जो इस कोड से जोड़ा जाता है वेबसाइट में Google खोज पट्टी का उपयोग कर रहा हूँ,

<gcse:searchbox-only></gcse:searchbox-only> 

कृपया इस त्रुटि से बचने में मदद करें। धन्यवाद

उत्तर

3

माइकल [टीएम] स्मिथ, पुरुष जो W3C एचटीएमएल सत्यापनकर्ता says here के बाद लग रहा है:

यह नहीं एक त्रुटि, यह एक चेतावनी है। और यह उत्सर्जित है क्योंकि सामग्री को XML एमआईएम प्रकार के बजाय HTML के रूप में कार्य किया जा रहा है, और HTML पार्सर्स नामस्थानों के बारे में कुछ भी नहीं जानते हैं - इसे XML शर्तों में रखने के लिए, प्रत्येक तत्व का नाम स्थानीय नाम है - और इसलिए एचटीएमएल में, उस तत्व का शाब्दिक नाम "जी: प्लसोन" है। और वह नाम एक्सएमएल में प्रदर्शित नहीं हो सकता है क्योंकि एक्सएमएल स्थानीय नामों में कोलन को अनुमति नहीं देता है। इसलिए चेतावनी की भावना कहना है, यदि आप एचटीएमएल के बजाय एक्सएमएल के रूप में इस सामग्री को सेवा देने के लिए चाहते हैं, तो आपके पास एक तत्व नाम है जिसमें XML में अनुमति नहीं है।

वह तत्व g:plusone तत्व के बारे में बात कर रहा है लेकिन यह वही समस्या है।

लेकिन मैं थोड़ा असहमत हूं। XML 1.0 में तत्व स्थानीय नामों में मान्य हैं। वे केवल XML 1.0 + namespaces में अस्वीकृत हैं इसलिए चेतावनी संदेश निश्चित रूप से सुधार किया जा सकता है।

अद्यतन: मैंने पहले दस्तावेज़.write के आधार पर एक वर्कअराउंड की पेशकश की थी, लेकिन जैसा कि जनवरी एम टिप्पणियों में बताता है, आईई के पास अपने टैग नामों में कोलन के तत्वों के साथ क्या करना है, इसके बारे में अपने विचार हैं, इसलिए यह नहीं हुआ वहाँ काम नहीं करते हैं। इसके बजाय, मैं जनवरी के उत्तर के बाद अनुशंसा करता हूं।

+0

टिप के लिए धन्यवाद: इस चाल Firefox पर काम करता है लेकिन IE पर यह खोज लोड करने के लिए मना कर दिया बॉक्स –

18

मैं इस सवाल का जवाब गूगल डॉक्स में छिपा हुआ पाया:

https://developers.google.com/custom-search/docs/element#html5

एचटीएमएल 5-मान्य div टैग

जब तक एचटीएमएल 5-मान्य div टैग का उपयोग कर सकते हैं के रूप में आप इन दिशानिर्देशों का पालन:

  • कक्षा विशेषता gcse-XXX
  • पर सेट की जानी चाहिए
  • किसी भी विशेषता को डेटा के साथ prefixed किया जाना चाहिए-।

उदाहरण के लिए:

<div class="gcse-searchbox" data-resultsUrl="http://www.example.com" data-newWindow="true" data-queryParameterName="search" > 
+0

सिवाय इसके कि यह कोड खंड, जिसे मैंने पाया, एएसपीनेट सी # फॉर्म पर एचटीएमएल 5 सत्यापनकर्ता पर एक खोज बॉक्स प्रस्तुत नहीं करता है। शीर्ष विधि का उपयोग एक अपरिचित नामस्थान 'gcse' चेतावनी प्रदान करता है। –

+0

ठीक है, यह मेरे लिए काम करता है, तो शायद आपके पास –

7

तुम हमेशा <div class="gcse-search"></div> बजाय <gcse:search></gcse:search> इस्तेमाल कर सकते हैं, तो त्रुटि W3C Validator से दूर जाना होगा।

+0

इंटरफेस से आपके सी # पर कुछ है क्रोम – den232

2

समाधान बहुत आसान है, सीधे HTML पृष्ठ में Google खोज टैग का उपयोग न करें। बस जावास्क्रिप्ट के innerHTML विकल्प द्वारा html में Google खोज टैग डालने के लिए एक सरल JavaScript कोड।

यहाँ उदाहरण है:

<div id="gsearch"></div> 

<script> 
    var gcseDiv = document.getElementById('gsearch'); 
    gcseDiv.innerHTML = '<gcse:search></gcse:search>' 
</script> 

इस लाइन आप लिख सकते हैं या जो नीचे के रूप में ही होगा अपने Google खोज कोड पेस्ट कर सकते हैं के बाद

 <script> 
     (function() { 
       var cx = 'xxxxxxxxxxxxxxxxxxxxxxxxx:xxxxxxxxx'; 
       var gcse = document.createElement('script'); 
       gcse.type = 'text/javascript'; 
       gcse.async = true; 
       gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + 
        '//www.google.com/cse/cse.js?cx=' + cx; 
       var s = document.getElementsByTagName('script')[0]; 
       s.parentNode.insertBefore(gcse, s); 
       })(); 

     </script> 

सुझाव: बस ऊपर div डाल और दोनों स्क्रिप्ट एक एकल पैर div में और केवल पैरेंट div के लिए सीएसएस का प्रबंधन।

1

हो सकता है कि यह बहुत आसान है, लेकिन मैं समस्या को हल सिर्फ इस के अंदर डाल कर और जावास्क्रिप्ट के अंत में काम किया:

document.write('<gcse:search><\/gcse:search>'); 

और हटाया

यह IE में काम करता है , क्रोम, फ़ायरफ़ॉक्स और सफारी और मान्य है।

+0

में एक आकर्षण की तरह काम करता है क्या आप निश्चित रूप से उस '' के बारे में सुनिश्चित हैं? ऐसा लगता है कि एक लाइन बहुत अधिक है। – Mogsdad

+0

document.write ('<\/gcse: search>'); – Doc

+0

और हटाएं Doc

0

उपयोग कोड निम्नलिखित अगर आप केवल खोज बॉक्स (resultsbox के बिना) प्रदर्शित करने के लिए एक DIV का उपयोग कर चाहते हैं:

<div class="gcse-searchbox-only"></div> 
संबंधित मुद्दे