Javascript ile include edilen javascript dosyasını kullanma

    Tüm browserlarda javascript ile javascript dosyası include edilebiliyor. Ama tüm browserlarda include edilen dosyadaki değişkenlere, include eden dosya erişemiyor. Sadece testini yaptığım firefox, opera, safari ve chrome değişkenlere erişebiliyor. IE erişemiyor.

Ama tüm browserlarda include edilen dosya, kendini include eden dosyada tanımlanmış metoda erişebiliyor.


Doğru

request yapan sayfadaki script:


<script type="text/javascript">
    (function i() {
        window.a = function (p) {
            alert(p);
        }
        var head = document.getElementsByTagName('head')[0];
        var script = document.createElement('script');
        script.setAttribute('type', 'text/javascript');
        script.setAttribute('src', 'js_test/include.js');

        head.appendChild(script);
    })();
</script>

include etme alternatifi.  Tüm örnekler için doğrudur.

         var s = 'script';
         var t = ' type="text/javascript"';
         var sr = ' src="js_test/include.js"';
         var t0 = '<' + s +  t + sr + '>' + '</' + s + '>';
         document.write(t0);


include.js

window.a('param');


Yanlış


request yapan sayfadaki script:



<script type="text/javascript">
    (function i() {
        var a = function (param) {
            alert(param);
        }
        var head = document.getElementsByTagName('head')[0];
        var script = document.createElement('script');
        script.setAttribute('type', 'text/javascript');
        script.setAttribute('src', 'js_test/include.js');

        head.appendChild(script);
    })();
</script>


include.js

a('param');


Yanlış

request yapan sayfadaki script:

Not: Bu örnek IE hariç tüm tarayıcılarda çalışıyor.



<script type="text/javascript">
    (function i() {
        var head = document.getElementsByTagName('head')[0];
        var script = document.createElement('script');
        script.setAttribute('type', 'text/javascript');
        script.setAttribute('src', 'js_test/include.js');

        head.appendChild(script);

        var t1 = '<' + s + t + '>alert(window.a)' + '</' + s + '>';burda
 <script type="java/javascript">alert(window.a)</script>

şeklinde çağırsaydık IE haricindeki browserlardada kod çalışmayacaktı.

        document.write(t1);
    })();
</script>


include.js

window.a = 'param';

Xmind ve Mind Map

Düşüncelerinizi birbirine bağlamak ve bunları bir anahtar kelime veya düşünce etrafında toplamak için bir diyagram mı çizmeniz gerekti? Xmind tam size göre.



Xmind ile aklınızdakileri görselleştirerek ve tasarlayarak problem çözümlerinize daha hızlı varabilirsiniz.  Düşünceleriniz arasındaki anlamsal ya da diğer bağlantıları gösteren resimli ve sözcüklerden oluşan diyagramlar çizmek için xmind birebir.