微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Silverlight.js中临时函数创建

 events: {
    onLoad: Silverlight.createDelegate(scene,scene.handleLoad),
    onError: function(sender,args) {
    var errorDiv = document.getElementById("errorLocation");
    if (errorDiv != null) {
    var errorText = args.errorType + "- " + args.errorMessage;
                                   
    if (args.ErrorType == "ParserError") {
    errorText += "<br>File: " + args.xamlFile;
     errorText += ",line " + args.lineNumber;
    errorText += " character " + args.charPosition;
   }
   else if (args.ErrorType == "RuntimeError") {
       errorText += "<br>line " + args.lineNumber;
       errorText += " character " +  args.charPosition;
   }
   errorDiv.innerHTML = errorText;
   }  
  }
}

// 函数对象的定义和取得

Silverlight.createObject = function(events)
{
  for (var name in events)
    {
        if ( events[name])
        {
            if ( name == "onLoad" && typeof events[name] == "function" && events[name].length != 1 )
            {
                var onLoadHandler = slEvents[name];
                events[name]=function (sender){ return onLoadHandler(document.getElementById(id),userContext,sender)};
            }
            var handlerName = Silverlight.__getHandlerName(events[name]);
            if ( handlerName != null )
            {
                slProperties[name] = handlerName;
                events[name] = null;
            }
            else
            {
                throw "typeof events."+name+" must be 'function' or 'string'";
            }
        }
    }

}

for...in 语句
对应于一个对象的每个 ,或一个数组的每个元素 ,执行一个或多个语句。(可用于遍历对象)

for (variable in [object | array])
statements

参数
variable

必选项。一个变量,它可以是 object 的任一属性或 array 的任一元素。

object,array

可选项。要在其上遍历的对象或数组。

statement

可选项。相对于 object 的每个属性或 array 的每个元素,都要被执行的一个或多个语句。可以是复合语句。

 

 

// 在DOM对象Windows对象为临时函数分配名称 Silverlight.__getHandlerName = function (handler) {     var handlerName = "";     if ( typeof handler == "string")     {         handlerName = handler;     }     else if ( typeof handler == "function" )     {         if (Silverlight._silverlightCount == 0)         {             if (window.addEventListener)             {                 window.addEventListener('onunload',Silverlight.__cleanup,false);             }             else             {                 window.attachEvent('onunload',Silverlight.__cleanup );             }         }         var count = Silverlight._silverlightCount++;         handlerName = "__slEvent"+count;                  window[handlerName]=handler;     }     else     {         handlerName = null;     }     return handlerName; }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐