AJAX

2009-11-25 11 views
8

के माध्यम से स्क्रिप्ट टैग लोड हो रहा है मेरे पास एक div टैग है जो एजेक्स कॉल के माध्यम से स्क्रिप्ट से भरा हुआ है, लेकिन स्क्रिप्ट निष्पादित नहीं होती है।AJAX

क्या स्क्रिप्ट को निष्पादित करने का कोई तरीका है?

+0

तरह डोम कार्यों का उपयोग कर लिखने के लिए है? – miku

+0

बहुत अस्पष्ट सवाल। कोड और उदाहरण कृपया। – mauris

+0

- div टैग क्लाइंट पक्ष में डंप किया गया। –

उत्तर

11

तो आप का उपयोग jQuery के .html विधि इसे बाहर पार्स स्क्रिप्ट टैग और evals यह:

$("div").html('<script type="text/javascript">alert("This should work")</script>'); 

तो jQuery एक विकल्प नहीं है तो आप इस अपने आप को या तो (1) एक रेगुलर एक्सप्रेशन, या का उपयोग कर लिख सकता है (2) डोम पेड़ को पार्स करें और स्क्रिप्ट टैग ढूंढें। (# 2 कैसे jQuery यह करता है)

+0

jQuery को ट्रिगर करने की आवश्यकता है और यदि मैंने क्लाइंट को वापस भेजे गए पेलोड में शामिल किया है तो यह एजेक्स डाउनलोड की गई स्क्रिप्ट शुरू नहीं होगी। अपवाद: मैं स्क्रिप्ट मार्कअप में डिफर टैग सेट कर सकता हूं और आईई इसे चलाएगा, लेकिन यह उपयोगकर्ताओं का केवल x% है। –

+0

@ कैलेब: आपके उत्तर में कोड क्या करता है? – Ashwin

+0

यही कारण है कि AJAX अनुरोधों के भीतर स्क्रिप्ट टैग उस स्थान पर समाप्त नहीं होते हैं जब वे प्रतिक्रिया से HTML में होते हैं। – Ikke

0

यदि आप div के आंतरिक HTML सेट करते हैं, तो स्क्रिप्ट टैग निष्पादित करना चाहिए। मैं $ ("# divid") का उपयोग कर रहा हूं। लोड() गतिशील सामग्री लोड करने के लिए और स्क्रिप्ट टैग निष्पादित करते हैं।

JQuery का उपयोग करने का प्रयास करें यदि यह सादा जावास्क्रिप्ट का उपयोग करके काम नहीं करता है।

+0

अफसोस की बात है कि मामला नहीं है। एक अजाक्स के एचटीएमएल पेलोड में स्क्रिप्ट क्लाइंट को पेलोड निष्पादित नहीं किया जाता है। –

3

कोड से सामग्री को अलग करना हमेशा अच्छा विचार है। <script> टैग डालने से AJAX और कोड के माध्यम से सामग्री लोड करें। यदि आप jQuery का उपयोग कर रहे हैं, तो गतिशील रूप से स्क्रिप्ट लोड करने के लिए $.getScript() का उपयोग करें।

2

मुझे लगता है, आप innerHTML में स्क्रिप्ट टैग लिख रहे हैं सीधे

यह काम नहीं करेगा।

document.body.innerHTML+="<script>alert(1)</scr"+"ipt>"; 

आप वहाँ किसी भी कोड उपलब्ध इस सवाल से संबंधित है इस

var tag = document.createElement("script"); 
tag.innerHTML="alert(1)"; 
document.body.appendChild(tag); //can be append to any object other than body 

या बेहतर उपयोग jQuery

+0

समस्या यह है कि स्क्रिप्ट को अजाक्स पेलोड में शामिल किया गया है और DIV के अंदर क्लाइंट को भेजा गया है। क्लाइंट में आने के बाद मुझे स्क्रिप्ट नहीं मिल सकती है इसलिए चिकन और अंडा समस्या होती है। –

+0

हाय, अजाक्स रिटर्न में, किस तरह का परिणाम? बस जावास्क्रिप्ट कोड? या स्क्रिप्ट टैग शामिल हैं? यदि केवल जावास्क्रिप्ट कोड हैं, तो आप 'eval' या स्क्रिप्ट टैग शामिल कर सकते हैं, तो आप मेरे पोस्ट में उपर्युक्त उदाहरण का उपयोग कर सकते हैं और' div.body' को अपने div टैग के साथ बदल सकते हैं, और वहां संलग्न कर सकते हैं। – YOU

+0

और क्या आप अपनी पोस्ट को अधिक जानकारी के साथ अपडेट कर सकते हैं, जैसे आपकी वेबसाइट और अधिक स्पष्टीकरण? क्योंकि लोग नोटिस करेंगे और वे आपकी वर्तमान समस्या, आरजीडीएस भी पा सकते हैं – YOU

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