2012-03-30 22 views
26

के अंदर HTML कोड डालें मेरे पास एक svg: text node है, और मैं इसके अंदर HTML कोड जोड़ना चाहता हूं। वास्तव में, मेरे कोड है:एसवीजी टेक्स्ट तत्व

<text x="10" y="54" text-anchor="start" class="barLegend">Hello!</text> 

और मैं कुछ इस तरह रखना चाहते हैं:

<text x="10" y="54" text-anchor="start" class="barLegend"><a href='www.gmail.com'>Gmail</a></text> 

बेशक, मैं लिंक काम कर रहे हैं, लेकिन, यह सिर्फ सभी HTML प्रदर्शित कर रहा है।

कोई विचार?

उत्तर

20

यहाँ एक नज़र डालें:

http://web.archive.org/web/20120418122612/http://ajaxian.com/archives/foreignobject-hey-youve-got-html-in-my-svg

एसवीजी foreignObject टैग आप अपने पेज में गैर एसवीजी सामग्री मिश्रण करने की अनुमति देता है। उदाहरण के लिए, आप कुछ HTML को एसवीजी तत्व के बीच में छोड़ सकते हैं।

+5

एक विदेशी ऑब्जेक्ट टैग टेक्स्ट तत्व का बच्चा नहीं हो सकता है। –

+1

धन्यवाद! इस लिंक पर एक समाधान स्थापित किया गया: http://groups.google.com/group/d3-js/browse_thread/thread/77671e2884df4f1d – todotresde

+0

दुर्भाग्य से IE विदेशी ऑब्जेक्ट –

3

आप उदाहरण के लिए, foreignObject टैग का उपयोग करने के लिए है: भी यहाँ

<foreignObject width="100" height="50" 
        requiredExtensions="http://example.com/SVGExtensions/EmbeddedXHTML"> 
    <body xmlns="http://www.w3.org/1999/xhtml"> 
    <a href='www.gmail.com'>Gmail</a> 
    </body> 
</foreignObject> 

देखें http://www.w3.org/TR/SVG/extend.html और https://developer.mozilla.org/en/SVG/Element/foreignObject

+5

का समर्थन नहीं करता है एक विदेशी ऑब्जेक्ट टैग टेक्स्ट तत्व का बच्चा नहीं हो सकता है। –

+1

धन्यवाद! जो मैं ढूंढ रहा हूं उसका उपयोग करने का तरीका। साथ ही, मुझे एक लिंक मिला जब किसी के पास डी 3 के साथ एक ही समस्या है: http://groups.google.com/group/d3-js/browse_thread/thread/77671e2884df4f1d – todotresde

17

क्यों इस मामले में एक एसवीजी <a> तत्व का उपयोग नहीं? यह न भूलें कि href को xlink होना चाहिए: href हालांकि। जैसे

<text x="10" y="54" text-anchor="start" class="barLegend"><a xlink:href='http://www.gmail.com'>Gmail</a></text> 

केवल एसवीजी एनिमेशन के तत्व, वर्णनात्मक तत्वों (<title> या <desc>), पाठ्य सामग्री, चाइल्ड तत्वों (<tspan> या <textPath>) या एसवीजी <a> तत्व पाठ तत्वों के बच्चों के रूप में अनुमति दी जाती है।

+0

एमएमएमएम, यह स्पष्ट नहीं है कि अंतर क्या है। क्या आप एक उदाहरण जोड़ सकते हैं? – todotresde

+0

एक एसवीजी लिंक तत्व svg नेमस्पेस में है, एचटीएमएल लिंक तत्व एचटीएमएल नेमस्पेस में है, अन्यथा वे बहुत समान दिखते हैं। –

0

यहां एक और समाधान आइटम पर एक ईवेंट डालना और लक्ष्य URL खोलने के लिए जावास्क्रिप्ट का उपयोग करना है .. और टैग का उपयोग न करें।

+0

स्टैक ओवरफ्लो में आपका स्वागत है। यह प्रश्न का उत्तर नहीं देता है। एक बार आपके पास पर्याप्त प्रतिष्ठा हो जाने के बाद आप किसी भी पोस्ट पर टिप्पणी कर सकेंगे; इसके बजाय, उन उत्तरों को प्रदान करें जिन्हें पूछताछ से स्पष्टीकरण की आवश्यकता नहीं है। –

+0

यह प्रश्न का उत्तर नहीं प्रदान करता है। एक बार आपके पास पर्याप्त [प्रतिष्ठा] (https://stackoverflow.com/help/whats-reputation) हो जाने पर आप [किसी भी पोस्ट पर टिप्पणी कर सकेंगे] (https://stackoverflow.com/help/privileges/comment); इसके बजाय, [उन उत्तरों को प्रदान करें जिन्हें पूछताछ से स्पष्टीकरण की आवश्यकता नहीं है] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-कर-बजाय)। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाले पदों/17222974) – Omi

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