• Silverlight与网页继承通过html javascript 将silverlight添加到网页当中


    一.【使用html将silverlight添加到网页】

    当我新建立一个silverlight 项目的时候,我们会在.web项目当中发现对应 silverlight应用程序名称的.html 我们打开发现他是如下结构的

    代码
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        
    <title>MySilverlightDemo</title>
        
    <style type="text/css">
            html, body
            
    {
                height
    : 100%;
                overflow
    : auto;
            
    }
            body
            
    {
                padding
    : 0;
                margin
    : 0;
            
    }
            #silverlightControlHost
            
    {
                height
    : 100%;
                text-align
    : center;
            
    }
        
    </style>

        
    <script type="text/javascript" src="Silverlight.js"></script>

        
    <script type="text/javascript">
        
            
    function onSilverlightError(sender, args) {
                
    var appSource = "";
                
    if (sender != null & sender != 0) {
                    appSource 
    = sender.getHost().Source;
                }

                
    var errorType = args.ErrorType;
                
    var iErrorCode = args.ErrorCode;

                
    if (errorType == "ImageError" || errorType == "MediaError") {
                    
    return;
                }

                
    var errMsg = "Silverlight 应用程序中未处理的错误" + appSource + "\n";

                errMsg 
    += "代码: " + iErrorCode + "    \n";
                errMsg 
    += "类别: " + errorType + "       \n";
                errMsg 
    += "消息: " + args.ErrorMessage + "     \n";

                
    if (errorType == "ParserError") {
                    errMsg 
    += "文件: " + args.xamlFile + "     \n";
                    errMsg 
    += "行: " + args.lineNumber + "     \n";
                    errMsg 
    += "位置: " + args.charPosition + "     \n";
                }
                
    else if (errorType == "RuntimeError") {
                    
    if (args.lineNumber != 0) {
                        errMsg 
    += "行: " + args.lineNumber + "     \n";
                        errMsg 
    += "位置: " + args.charPosition + "     \n";
                    }
                    errMsg 
    += "方法名称: " + args.methodName + "     \n";
                }

                
    throw new Error(errMsg);
            }

            
    function onSourceDownloadProgressChanged(sender, eventArgs) {

                sender.findName(
    "uxStatus").SetValue("Foreground""White");
                sender.findName(
    "uxStatus").Text = "Loading: " + Math.round((eventArgs.progress * 1000)) / 10 + "%";
                sender.findName(
    "uxProgressBar").ScaleY = eventArgs.progress * 356;
            }


        
    </script>

    </head>
    <body>
        
    <div id="silverlightControlHost">
            
    <object data="data:application/x-silverlight-2," type="application/x-silverlight-2"width="100%" height="100%">
                
    <param name="source" value="ClientBin/MySilverlightDemo.xap" />
                
    <param name="onerror" value="onSilverlightError" />
                
    <param name="background" value="white" />
                
    <param name="minRuntimeVersion" value="3.0.40818.0" />
                
    <param name="autoUpgrade" value="true" />
                
    <param name="splashscreensource" value="SplashScreen.xaml" />
                
    <param name="onSourceDownloadProgressChanged" value="onSourceDownloadProgressChanged" />
                
    <href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40818.0" style="text-decoration: none;">
                    
    <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="获取 Microsoft Silverlight"
                        style
    ="border-style: none" />
                
    </a>
            
    </object>
            
    <iframe id="_sl_historyFrame" style='visibility: hidden; height: 0;  0; border: 0px'>
            
    </iframe>
        
    </div>
    </body>
    </html>

    我们可以清晰的看到,这里面有有脚本,哪个能帮助我们家在silverlight程序呢,就是通过这个object对象来实现的。

    二.【使用javascript将silverlight 嵌入到网页当中】

    代码
     <script type="text/javascript">
            Silverlight.createObject(
                
    "ClientBin/SilverlightApplication1.xap",  // source
                silverlightControlHost,  // parent element
                "slPlugin",  // id for generated object element
                {
                     
    "100%", height: "100%", background: "white"
                    version:
    "3.0.40620.0"
                },
                { onError: onSLError, onLoad: onSLLoad },
                
    "param1=value1,param2=value2"
                
    "context"    // context helper for onLoad handler.
            );
        
    </script>

    我就不太喜欢用这种方式,主要是js水平有限啊,再加上提示少.

    三.【指定和检索自定义参数】

    这个可是很重要的,不过也很简单。

    在承载页面<object>下面加上 <param name="initParams"   value="A=sa,B=sa"/>

    在silverlight 应用程序启动项里面

    if (e.InitParams.Count > 0)
                {
                    switch (e.InitParams["A"].ToString())
                    {
                        case"A":
                            System.Windows.Browser.HtmlPage.Window.Alert("你好啊");
                            break;
                        case"":
                            break;
                    }
                }

    这样我们就可以根据这个来指定我们每个页面的操作喽.

  • 相关阅读:
    [vue][element-ui]mousedown在Dialog上 mouseup在遮罩上时自动关闭弹窗的问题总结
    [ESlint]报错:使用async await时,报(local function)(): Promise<void> Parsing error: Unexpected token function
    [ESlint]报错:Vue eslint Parsing error: Unexpected token
    [CSS]position梳理
    [Node]报错:gyp verb check python checking for Python executable "python2" in the PATH
    [Node]报错:node-sassvendorwin32-x64-79inding.node Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 13.x
    Failed to start OpenLDAP Server Daemon
    与或
    struts2启动报错
    UIButton
  • 原文地址:https://www.cnblogs.com/tongly/p/1875699.html
Copyright © 2020-2023  润新知