2010-08-19 11 views
8

क्या किसी को पता है कि आसपास एक उपकरण है जो HTML को जावास्क्रिप्ट में परिवर्तित कर सकता है।एचटीएमएल को जावास्क्रिप्ट में परिवर्तित करें

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

<div> 
</div> 

aDiv = document.createElement('div'); 
document.appendChild(aDiv); 

बदल जाएगा आदि

मैं UI घटक के लिए कुछ एचटीएमएल टेम्पलेट्स कर रहा हूँ और प्रोटोटाइप के लिए MooShell का उपयोग कर रहा हूँ। जावास्क्रिप्ट को स्वतः उत्पन्न करने में सक्षम होना बहुत अच्छा होगा जो घटक के एचटीएमएल का निर्माण करेगा।

धन्यवाद

+1

दिलचस्प सवाल। मुझे लगता है कि jQuery के लिए एक अंतर्निहित पार्सिंग इंजन होना चाहिए, क्योंकि यह डीओएम ऑब्जेक्ट्स बनाने के लिए '$ ("

") जैसे कमांड स्वीकार कर सकता है। शायद वहां अतिरिक्त जानकारी है। –

+1

दिलचस्प विचार, लेकिन ध्यान रखें कि बार-बार डीओएम लेनदेन, विशेष रूप से बड़े पदानुक्रमों के लिए, महंगा हो सकता है। – Konrad

+0

और यदि दस्तावेज़ मान्य नहीं हैं? वैसे भी इसे ब्रूटफोर्स regexping के साथ "आसानी से" हासिल किया जा सकता है :) –

उत्तर

0

तो ऐसी कोई उपकरण (जो मैं अत्यधिक लगता है मामला है), मैं इस समस्या वही पुरानी अच्छा तरीका का समाधान होता था: मेरे अपने पार्सर का निर्माण।

-2

मुझे आपकी स्थिति के बारे में निश्चित नहीं है, लेकिन यदि आपके पास HTML में घटक हैं तो उनके पास ईवेंट, आईडी और बाध्यकारी होना चाहिए ... इसलिए मुझे नहीं लगता कि मानव-जैसी प्रतिभा स्क्रिप्ट है जो इस कोड को उत्पन्न कर सकती है । उसमें जोड़ें, आपकी समस्या बहुत विशिष्ट है। यह कुछ आईटी निगम में कहीं हो सकता है, लेकिन ऐसा कुछ नहीं है जो वेब डेवलपर रोज़ाना jQuery की तरह उपयोग करता है।

0

मुझे लगता है कि अन्य लोगों ने आपको यह करने के तरीके पर बहुत सारी युक्तियां दी हैं, लेकिन मेरे दो सेंट एक बात पर ध्यान में रखना है।

यदि आप क्लाइंट-साइड जावास्क्रिप्ट का उपयोग करते हुए डीओएम से तत्वों को डालने/हटाने/संशोधित कर रहे हैं, तो आप देखेंगे कि jQuery जैसे ढांचे के साथ, आप जो डोम तत्वों को जोड़ चुके हैं उन्हें कॉल और हेरफेर करने में असमर्थ होंगे उड़ान पर।

jQuery लाइव प्लगइन का उपयोग करके इसे देखने का सबसे अच्छा तरीका है।

0

PrototypeJS फ्रेमवर्क एक डालने() विधि जो एचटीएमएल कोड को पार्स करने में सक्षम है है, तो आप की तरह कुछ कर सकते हैं:

$$('body')[0].insert(stringWithYourHTMLCode); 

या आप अपनी सामग्री के लिए एक कंटेनर को परिभाषित:

$('containerId').insert(stringWithYourHTMLCode); 
+0

वह यही नहीं पूछ रहा है। – Chris

2

मैं जॉन रेसिग के pure javascript HTML parser पर एक नज़र डालने का सुझाव दूंगा। इसमें HTML के लिए एक SAX शैली पार्सर शामिल है और इसमें एक एक्सएमएल सीरिएलाइज़र, एक डोम बिल्डर और एक डोम निर्माता शामिल है। प्रत्येक इनपुट के रूप में HTML की एक स्ट्रिंग लेता है।

विशेष रूप से, HTMLtoDOM विधि को HTML की किसी भी इनपुट स्ट्रिंग के लिए DOM बनाने के लिए आवश्यक जावास्क्रिप्ट की स्ट्रिंग को वापस करने के लिए आसानी से पुनर्स्थापित किया जा सकता है।

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