Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在事件中更改JavaScript对象值_Javascript_Events_Object_Onload_Object Property - Fatal编程技术网

如何在事件中更改JavaScript对象值

如何在事件中更改JavaScript对象值,javascript,events,object,onload,object-property,Javascript,Events,Object,Onload,Object Property,我有一个关于JavaScript的复杂情况。我已经创建了一个对象。该对象以动态方式加载JS、CSS文件(请参见加载函数)。我的问题是,我想在加载对象文件时添加onload事件,并更改该对象中的一些值 我的对象构造函数: function lib( type, url ) { //Varaibles this.URL = url; //Files url this.TYPE = type; //Files type( can by CSS or JS ) t

我有一个关于JavaScript的复杂情况。我已经创建了一个对象。该对象以动态方式加载JS、CSS文件(请参见加载函数)。我的问题是,我想在加载对象文件时添加onload事件,并更改该对象中的一些值

我的对象构造函数:

function lib( type, url )
{
  //Varaibles
  this.URL = url;        //Files url
  this.TYPE = type;      //Files type( can by CSS or JS )
  this.READY = false;    //Files loaded status
  //Functions
  this.load = load;      //Method, which is called to start loading file
  this.status = status;  //Return READY status( false or true )
}
所以我正在尝试文件加载更改就绪状态。我想在load函数中设置这个东西。现在我有了这个加载函数:

function load()
{
    var object = this;
    switch ( this.TYPE.toUpperCase() )
    {
        case "JS" :
        {
            var script = document.createElement( "script" );
            script.setAttribute( "type", "text/javascript" );
            script.setAttribute( "src", this.URL );
            document.getElementsByTagName( "head" )[0].appendChild( script );


            if( navigator.appName == "Microsoft Internet Explorer" )
            {
                script.onreadystatechange = function () { this.READY = true; };
            } else {
                script.onload =function () { this.READY = true; };
            }

            break;
        }
        ( Here should be CSS loading... )
    }
}

伙计们,我需要看看我的代码,看看我做错了什么

当在脚本元素上下文中调用事件处理程序时,
this
关键字指向它use
object.READY=true

当在脚本元素上下文中调用事件处理程序,并且
this
关键字指向它时,使用
object.READY=true

如果您的问题是“readystatechange”事件,您可以尝试如下方式修复它:

script.onreadystatechange = function () {
    if (this.readyState == 4)
        object.READY = true;
};

如果您的问题是“readystatechange”事件,您可以尝试按如下方式修复它:

script.onreadystatechange = function () {
    if (this.readyState == 4)
        object.READY = true;
};

+1更多:(披露:我的博客,但它不是货币化的或任何东西,也不可能是)+1更多:(披露:我的博客,但它不是货币化的或任何东西,也不可能是)我不开始支持IE,但谢谢你的回答。我想我会用它:)我没有开始支持IE,但是谢谢你的回答。我想我会用它:)