ActiveX远程桌面连接HTML对象未使用javascript正确显示

ActiveX远程桌面连接HTML对象未使用javascript正确显示,javascript,vbscript,activex,remote-desktop,rdp,Javascript,Vbscript,Activex,Remote Desktop,Rdp,我有一个web应用程序,它使用旧的MS remote desktop ActiveX对象连接到我们的一台服务器 最初,代码是用VBScript编写的,因为这是MS站点上给出的示例。然而,微软已经放弃了对IE 11中VBScript的支持,所以我尝试将其改为使用Javascript。在操作上,它在很大程度上起作用。我可以连接到服务器。但是,服务器的视图在页面的中间出现为一个小的正方形。正在设置控件的高度和宽度,看起来它们是正确的,因为我可以在页面上看到控件的轮廓,其大小符合我的要求。但是视图本身非

我有一个web应用程序,它使用旧的MS remote desktop ActiveX对象连接到我们的一台服务器

最初,代码是用VBScript编写的,因为这是MS站点上给出的示例。然而,微软已经放弃了对IE 11中VBScript的支持,所以我尝试将其改为使用Javascript。在操作上,它在很大程度上起作用。我可以连接到服务器。但是,服务器的视图在页面的中间出现为一个小的正方形。正在设置控件的高度和宽度,看起来它们是正确的,因为我可以在页面上看到控件的轮廓,其大小符合我的要求。但是视图本身非常小(在页面的VBScript版本中不会发生这种情况)。此外,在我将代码转换为javascript之后,“断开连接”事件似乎不会触发。有没有人能够使用Javascript让这个组件工作?是否存在不需要在服务器或客户机上安装的替代方案

好的,给可能发生这种情况的其他人一点更新,还有另一个问题。我最终通过以下HTML和JS实现了这一切:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="./scripts/jquery-1.10.2.js" ></script>
</head>
<body>
<script type="text/javascript" for="rdpClient" event="OnDisconnected(reason)">
    OnDisconnected(reason);
</script> 

<script type="text/javascript">
    var pw;

    function GetPassword() {
        return $.ajax({
            url: "OpenNewRDP.aspx/GetPassword",
            type: "POST",
            contentType: "application/json;charset=utf-8",
            dataType: "json",
            data: ''
        });
    }

    GetPassword().done(function (data) {
        pw = data.d;
        var rdpClient = document.getElementById("rdpClient");
        rdpClient.AdvancedSettings2.ClearTextPassword = pw;
    });

    function OnReadyStateChange() {
        var rdpClient = document.getElementById("rdpClient");
        if (rdpClient != undefined) {
            if ((rdpClient.readyState == 4) && (rdpClient.SecuredSettingsEnabled)) {
                SetRdpDefaultSettings();
            } else {
                rdpClient.Server = "";
                alert("Trusted Sites Error");
            }
        }
    }

    function SetRdpDefaultSettings() {
        var rdpClient = document.getElementById("rdpClient");
        var resHeight = screen.height;
        var resWidth = screen.width;
        rdpClient.DesktopHeight = resHeight - 100;
        rdpClient.DesktopWidth = resWidth - 30;
        rdpClient.height = resHeight - 100;
        rdpClient.width = resWidth - 30;
        rdpClient.UserName = "<%=UserName%>";
        //rdpClient.AdvancedSettings2.ClearTextPassword = pw;
        if (rdpClient.SecuredSettingsEnabled) {
            rdpClient.SecuredSettings.StartProgram = "<%=StartProgram%>";
            rdpClient.SecuredSettings.WorkDir = "c:\\";
        } else {
            alert("Trusted Sites settings need to be updated.");
        }
    }

    function OnDisconnected(disconnectCode) {
        window.close();
    }

</script>

<object 
    id='rdpClient'
    onreadystatechange="OnReadyStateChange()"
    codeBase='/wpresources/downloads/msrdp.cab#version=5.2.3790.0' 
    classid='CLSID:7584c670-2274-4efb-b00b-d6aaba6d3850'
    VIEWASTEXT>
    <PARAM NAME='Server' VALUE='<%=ServerName%>'>
    <PARAM NAME='StartConnected' VALUE='1'>
</object>

</body>
</html>
有没有线索说明IE 7和8为什么会在这个问题上窒息?

基于此,我认为这是一个COM+桥接问题,高级设置2无法通过JavaScript访问

<meta http-equiv="X-UA-Compatible" content="IE=7"/>
GetPassword().done(function (data) {
    pw = data.d;
    var rdpClient = document.getElementById("rdpClient");
    rdpClient.AdvancedSettings2.ClearTextPassword = pw; **// error occurs here**
});