如何获取Chrome中vSphere Client弹出标签的vmrc协议真实地址?
解决方法
一、获取真实的vmrc://协议地址
有几种直接可行的方式拿到真实地址:
- 捕获window.open调用参数:打开Chrome开发者工具的Console面板,提前运行以下代码覆盖原生
window.open方法,点击触发按钮后就能在控制台看到真实的协议地址:const originalOpen = window.open; window.open = function(url, ...args) { console.log('真实跳转地址:', url); return originalOpen.apply(this, arguments); }; - 查看按钮的事件绑定逻辑:在Elements面板定位到触发按钮,右键选择「检查」,切换到右侧的Event Listeners标签,找到click相关的事件处理器,点击进入对应代码就能直接看到跳转用的vmrc地址。
- 断点调试追踪参数:在Sources面板设置DOM断点(比如选择按钮元素的「Break on...」-「Attribute modifications」),或者在代码里直接给
window.open设断点,触发跳转后代码会暂停,此时在调用栈里就能找到传递的真实地址参数。
二、能否拦截window.open调用?
完全可以,上面的代码已经实现了基础拦截。你不仅能捕获地址,还能根据需求修改参数、阻止默认跳转,或者自定义处理逻辑——比如不想打开新标签页,直接在覆盖函数里不调用originalOpen即可。
需要注意的是,这种临时覆盖只在当前页面会话有效,刷新后需要重新运行代码;如果要长期生效,可以用Tampermonkey这类工具编写用户脚本,自动给目标页面注入拦截代码。
内容的提问来源于stack exchange,提问作者Jan Berndt
相关产品推荐
相关产品推荐

