2009-11-25 24 views
8

Ajax çağrısı yoluyla betikle doldurulmuş bir div etiketim var, ancak betik çalışmıyor.Komut dosyası etiketlerini AJAX yoluyla yükleme

Komut dosyasının yürütülmesine neden olan bir yol var mı?

+0

gibi DOM işlevlerini kullanarak yazmak zorunda? – miku

+0

çok belirsiz bir soru. kod ve örnekler lütfen. – mauris

+0

- div etiketi istemci tarafına döküldü. –

cevap

11

kullanırsanız jQuery yaptım o komut dosyası etiketi ve evals dışarı ayrıştırır .html yöntemi: jQuery bir seçenek değilse

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

Kendinizi (1) normal bir ifade veya kullanarak bu yazabiliriz (2) DOM ağacını ayrıştırın ve komut dosyası etiketlerini bulun.

+0

jQuery'nin tetiklenmesi gerekiyor olsa da, bunu istemciye geri gönderilen yüke dahil ettiysem, ajax indirilen komut dosyası başlamıyor. Özel durum: Defer etiketini komut dosyası işaretlemesine ayarlayabilirim ve IE bunu çalıştıracak, ancak bu yalnızca kullanıcıların% x'i. –

+0

@Caleb: Cevabınızdaki kod ne yapıyor? – Ashwin

+0

Ayrıca, AJAX istekleri içindeki komut dosyası etiketlerinin, yanıttan html'de bulundukları yerde sonuçlanmamasının nedeni de budur. – Ikke

0

Divanın innerHtml değerini ayarlarsanız, komut dosyası etiketleri yürütülmelidir. Dinamik içeriği ve komut dosyası etiketlerini yüklemek için $ ("# bölü"). Load() kullanıyorum.

Düz javascript kullanarak çalışmazsa JQuery'yi kullanmayı deneyin.

+0

Ne yazık ki durum böyle değil. İstemciye teslim edilen bir Ajax yükünün html yükündeki komut dosyası yürütülmemiştir. –

3

İçeriği koddan ayırmak her zaman iyi bir fikirdir. AJAX yoluyla içerik yükleyin ve <script> etiketlerini ekleyerek kodlayın. JQuery kullanıyorsanız, komut dosyalarını dinamik olarak yüklemek için $.getScript() kullanın.

2

sanırım, doğrudan

Bu işe yaramaz innerHTML içine komut dosyası etiketi yazıyoruz (2. jQuery da bu yöntemi kullanıyor).

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

Eğer herhangi bir kod mevcut bu soruya ilişkin olduğu bu

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

veya Daha kullanımı jQuery

+0

Sorun, komut dosyasının Ajax yüküne dahil edilmesi ve DIV içindeki istemciye gönderilmesidir. İstemciye ulaştıktan sonra komut dosyası alamıyorum, bu yüzden tavuk ve yumurta problemi var. –

+0

Merhaba, Ajax dönüşünde, nasıl bir sonuç? sadece javascript kodları? veya komut dosyası etiketi dahil mi? Eğer sadece javascript kodları varsa, “eval” veya script etiketi içeriyorsa, postumdaki yukarıdaki örneği kullanabilir ve div document'ınızla 'document.body' değiştirebilir ve oraya ekleyebilirsiniz. – YOU

+0

ve yayınınızı, web siteniz ve daha fazla açıklama gibi daha fazla bilgi ile günceller misiniz? çünkü insanlar fark edecekler ve şu anki probleminizi de öğrenecekler, rgds – YOU

İlgili konular