ActiveX远程桌面连接HTML对象未使用javascript正确显示
我有一个web应用程序,它使用旧的MS remote desktop ActiveX对象连接到我们的一台服务器 最初,代码是用VBScript编写的,因为这是MS站点上给出的示例。然而,微软已经放弃了对IE 11中VBScript的支持,所以我尝试将其改为使用Javascript。在操作上,它在很大程度上起作用。我可以连接到服务器。但是,服务器的视图在页面的中间出现为一个小的正方形。正在设置控件的高度和宽度,看起来它们是正确的,因为我可以在页面上看到控件的轮廓,其大小符合我的要求。但是视图本身非常小(在页面的VBScript版本中不会发生这种情况)。此外,在我将代码转换为javascript之后,“断开连接”事件似乎不会触发。有没有人能够使用Javascript让这个组件工作?是否存在不需要在服务器或客户机上安装的替代方案 好的,给可能发生这种情况的其他人一点更新,还有另一个问题。我最终通过以下HTML和JS实现了这一切: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。在操作上,它在很大程度上起作用。我可以连接到服务器。但是,服务器的视图在页面的中间出现为一个小的正方形。正在设置控件的高度和宽度,看起来它们是正确的,因为我可以在页面上看到控件的轮廓,其大小符合我的要求。但是视图本身非
<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**
});