2013-10-03 21 views
8

HTML'mde 2 div var. Ben "https://abcapis.com/sample.js" örneğin demek javascript dosyası harici yüklemek istiyorum "DIV2" tıklayarak On"Onclick" etkinliği sırasında harici bir Javascript dosyası nasıl yüklenir?

<div id="div1"></div> 
<div id="div2"></div> 

.

Ben

var script = document.createElement("script"); 
script.type = "text/javascript"; 
script.src = "https://abcapis.com/sample.js"; 
document.getElementsByTagName("head")[0].appendChild(script); 

Bu başlık bölümünde komut etiketi dahil ama senaryo etiketi sayfa yüklemesinde yüklenir çünkü sadece (beni düzeltin yük değildi, aşağıda gibi onclick olayı JS dosyasına dahil çalıştı eğer yanılıyorsam buradayım.

Devam edebilmem için başka yol var mı?

Teşekkürler.

+0

Kodunuzun çalıştığından emin misiniz? Bana göre çalışmalı gibi görünüyor ve Chrome'da benim için gayet iyi çalışıyor. – Xymostech

cevap

15

jQuery'nin $ .getScript() işlevini kullanarak işi sizin için yapmalıdır. İşte

http://api.jquery.com/jQuery.getScript/

bir örnek kod dilim: jQuery kullanmıyorsanız

$("button").click(function(){ 
    $.getScript("demo_ajax_script.js"); 
}); 

, dinamik yeni komut dosyası yüklemek için AJAX kullanmayı öğrenmek zorunda olup olmadığınız sayfa.

6

Kodunuz neredeyse işe yarıyor. .setAttribute'u kullanmanız gerekir. İşte benim çalışma kodum. JQuery komutum olarak kullandım:

var script = document.createElement('script'); 
script.setAttribute('type', 'text/javascript'); 
script.setAttribute('src', 'jquery.min.js'); 
document.head.appendChild(script); 

Ve bunu yapacak.

EDIT:

Bazı daha fazla bilgi. script.type = 'text/javascript' gibi bir şey yaptığınızda, nesne üzerinde bir özellik ayarlıyorsunuz, ancak bu özellik gerçek bir düğüm özniteliğiyle ilişkilendirmekle aynı şey değildir.

+0

bu benim için mükemmel çalıştı! –

2

jQuery kullanıyor musunuz? Eğer öyleyse, $.getScript() deneyebilirsiniz.

Ayrıca bu answer kontrol etmek isteyebilirsiniz. Ama temelde, böyle bir şey yapabilirsiniz: Kaçırdığım

<a href='linkhref.html' id='mylink'>click me</a> 
<script type="text/javascript"> 
    var myLink = document.getElementById('mylink'); 

    myLink.onclick = function(){ 

     var script = document.createElement("script"); 
     script.type = "text/javascript"; 
     script.src = "Public/Scripts/filename.js."; 
     document.getElementsByTagName("head")[0].appendChild(script); 
     return false; 
    } 
</script> 
1
$("button").click(function(){ 
    $.getScript("demo_ajax_script.js"); 
}); 

bir bilgi yolu mutlak olması gerektiğini oldu.

İlgili konular