通过switchhost配置本地虚拟域名

2,643 阅读1分钟

解决iframe跨越问题时(两个页面的主域相同、二级域名不同或者域名完全不同的两个页面),如果通过打包后在线上调试非常麻烦。可以通过更改host文件,把本地不同的端口映射到不同的虚拟域名,来复现线上的调试环境。但手动改host文件比较麻烦,也可以通过switchhost工具来自动实现。

例如,父页面http://father.com以iframe的形式引入了子页面http://son.com,互相获取对方的dom肯定会有跨域的情况,通过postMessage等方法可以解决,但需要两个页面都做一些修改来调试。

假设本地的父页面路径是127.0.0.1:3333 ,映射到http://father.com


<body>

<h1>page1</h1>

<iframe

name="frameSon"

id="frame"

src="http://son.com:4444"

width="300px"

height="300px"

frameborder="1">

</iframe>

</body>

子页面路径是127.0.0.1:4444,映射到http://son.com:


<body>

<h1>page2</h1>

</body>

在switchhost中新建一个名为example的host文件并启动,内容如下:

20210725235921.png

在浏览器地址栏输入http://father.com:3333/就可以访问到127.0.0.1:3333,也就是父页面;输入http://son.com:4444/就可以访问到127.0.0.1:4444,也就是子页面:

20210726000218.png

参考

前端大杂烩 安装并使用switchhost修改host文件多个方案_哔哩哔哩_bilibili