2010-05-07 12 views
5

Sitelerde, size o içeriğe eklenmiş bir web sayfasına yapıştırdığınız bir JavaScript verdiğinizde, betik DOM'deki mevcut konumunu nasıl belirler? Document.write kullanmadan?Öğe ekleme <script> label position

sayesinde

Nick

+1

Bunun nerede yapıldığına dair bir örneğiniz var mı? –

cevap

5

Komut dosyası eklenme zamanında, sayfadaki son <script>'un geçerli olduğu kesin; sayfanın geri kalanı henüz ayrılmamış. Yani: Bu sürece geçerlidir

<script type="text/javascript"> 
    var scripts= document.getElementsByTagName('script'); 
    var this_script= scripts[scripts.length-1]; 

    // Something that happens later... 
    // 
    setTimeout(function() { 
     var div= document.createElement('div'); 
     div.appendChild(document.createTextNode('Hello!')); 
     this_script.parentNode.insertBefore(div, this_script); 
    }, 5000); 
</script> 

komut dosyası etiketi defer kullanın veya HTML5 en async olmadığı için.

+0

Bunun böyle işe yarayacağını bilmiyordum, ama mükemmel bir his veriyor, teşekkürler! –

0

böyle komut DOM'da bulundukları yere umurumda neden görmüyorum, ama belirlemek mümkün sanırım. Aramanızı başlatmak için document.scripts gibi bir şey kullanın.

+0

Mozilla referansında document.scripts dosyasını göremiyorum: https://developer.mozilla.org/en/DOM/document Yani tahmin ediyorum ki bu sadece bir şey mi? Yine de yanlış olabilir, Chrome'u çalıştırıyorum ve kontrol etmek istemiyorum! :) Yine de teşekkürler. –

+0

Geri dönüş yolunda bir IE uzantısı, WebKit ve Opera'da da mevcut. Her ne kadar getElementsByTagName'ın zaten yapmadığı bir şey vermediğinden, gerçekten çok fazla kullanım görmedi. – bobince