web标准与document.body.clientHeight

网页加了这么一行
<!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">
document.body.clientHeight就不可用,解决方法如下:

在Quirks渲染模式下<body>作为文档的根,所以可以用document.body.clientHeight得到文档的高度。而在Standard渲染模式下,<html>作为文档的根,需要使用document.documentElement.clientHeight才可以得到。此时document.body的高度和宽度都为0 

### 使用 `mstsc.js` 实现 Web 远程桌面连接 为了实现在 Web 浏览器中通过 RDP 协议访问远程桌面的功能,可以利用纯 JavaScript 编写的客户端库 `mstsc.js`。此库允许开发者创建基于浏览器的 RDP 客户端应用。 #### 准备工作环境 首先需安装必要的依赖项,包括但不限于 Node.js 和 npm(Node Package Manager)。接着可以通过命令行工具克隆 `mstsc.js` 的仓库到本地开发环境中: ```bash git clone https://gitcode.com/gh_mirrors/ms/mstsc.js.git cd mstsc.js npm install ``` #### 配置服务器端支持 考虑到安全性以及跨域资源共享(CORS)等问题,在实际部署时通常还需要配置一个代理服务器来转发请求给目标机器上的 RDP 服务[^2]。对于这一部分的工作,可以选择使用 Express 或其他适合做反向代理的服务框架构建中间件层,并确保其能够正确解析并传递来自前端页面发出的数据包至对应的 Windows Server 上运行着的终端服务进程。 #### 创建简单的 HTML 页面调用 API 接口 下面是一个简化版的例子展示怎样在一个网页里加载 `mstsc.js` 并建立同远端主机之间的会话链接: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"/> <title>Web RDP Client</title> <script src="./path/to/mstsc.min.js"></script><!-- 引入编译后的 js 文件 --> <style type="text/css"> body { margin:0; padding:0 } canvas{ width:100%; height:95vh;display:block;} </style> </head> <body onload="connect()"> <canvas id="rdpCanvas"></canvas> <script> function connect(){ let rdpClient = new MsTscAx({ host:'your_remote_host_ip', // 替换成你要连接的目标 IP 地址 port: '3389', username: "domain\\user",// 用户名格式为 domain\user 形式 password:"YourPasswordHere", width: window.innerWidth, height: document.getElementById('rdpCanvas').clientHeight }); document.getElementById('rdpCanvas').appendChild(rdpClient.getNativeElement()); } </script> </body> </html> ``` 上述代码片段展示了如何初始化一个新的 `MsTscAx` 对象实例化参数设置好之后再将其挂载到指定 DOM 节点下以便渲染图形界面。 需要注意的是,出于安全考虑,真实场景下的密码不应硬编码在源码之中;而是应该采取更稳妥的方式比如 OAuth 认证机制让用户输入凭证信息后再发起认证流程获取临时令牌用于后续操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值