הוספת סקריפט בצורה אסינכרונית

קרמיט524

New member
הוספת סקריפט בצורה אסינכרונית

הי,
אני מנסה לטעון סקריפט בצורה אסינכרונית בארוע onload של המסמך.
בסקריפט מוגדר אובייקט בשם agile.
בקונסול אפשר לראות שהסקריפט אכן נטען לדף.
אבל משום מה, כשאני מנסה לקרוא למתודה של האובייקט (agile), אני מקבלת הודעת שגיאה שהוא לא מוגדר.
יש למישהו רעיון מה כדאי לבדוק, או מה יכול להיות לא בסדר?
אני מצרפת את הקוד בתגובה להודעה הזאת.
בתודה מראש ובברכה
,
 

קרמיט524

New member
הסקריפט שאני משתמשת בו:

var scriptag = document.createElement("script");
scriptag.type = 'text/javascript';
scriptag.src = 'https://path/to/myscript.js';
document.body.appendChild(scriptag);
if (scriptag.readyState){ //IE
scriptag.onreadystatechange = function(){
if (scriptag.readyState == "loaded" || scriptag.readyState == "complete"){
scriptag.onreadystatechange = null;
myobject.set_account('rfbaraq2dssjc7qbe3rovee8o0', 'matrix'); _myobject.track_page_view(); _execute_web_rules();
}
};
}
else { //Others
scriptag.onload = function(){
myobject.set_account('rfbaraq2dssjc7qbe3rovee8o0', 'matrix'); _myobject.track_page_view(); _execute_web_rules();
};
}​
 
משום מה לא הצלחתי כשעבדתי כמוך

אז ניסיתי את ה"מעקף" הבא:

קוד:
<!doctype html>
<html>
    <head>
        <title>title</title>
        <script type='text/JavaScript'>
            var Script_is_loaded = false;
            var wait_to_test = 1;
            
            //Load completed data
            function Init() {
                var scriptag = document.createElement("script");
                scriptag.type = 'text/javascript';
                scriptag.src = 'loadScript.js';
                document.body.appendChild(scriptag);
                setTimeout(TestIfLoaded,wait_to_test);
            }
            
            //Test if loaded.
            function TestIfLoaded() {
                if (Script_is_loaded) {
                    alert ('Is Loaded');
                } else {
                    setTimeout(TestIfLoaded,wait_to_test);
                }
            }
        </script>
    </head>
    <body onload='Init();'>
        
    </body>
</html>
כאשר בקובץ הJS כללתי רק את השורה הבאה:
Script_is_loaded = true;
זה כן עבד.
 
למעלה