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';

Comments

0 Responses to "Javascript ile include edilen javascript dosyasını kullanma"