
如何在 iframe 中引入短链并展示对应内容?
使用 iframe 来嵌入其他页面时,若遇到的页面地址是短链接,iframe 会因无法自动重定向而无法展示。以下两种方式可以解决这个问题:
方法一:获取长链后赋值
- 在父页面中,使用 JavaScript 请求短链接的实际 URL。
- 获得长链后,将它赋值给 iframe 的 src 属性。
const shortUrl = 'http://shorturl.com/abcd';
// 获取长链
fetch(shortUrl)
.then((res) => res.url)
.then((longUrl) => {
// 赋值给 iframe 的 src
const iframe = document.querySelector('iframe');
iframe.src = longUrl;
});方法二:自定义拦截
如果无法获取或修改短链接,可以自定义一个拦截器来对 iframe 的请求进行修改。
- 重写浏览器的 fetch 函数。
- 在拦截器中,检查请求的 URL 是否是短链接。
- 如果是,则将其重定向到相应的长链。
// 拦截 fetch 请求
const originalFetch = window.fetch;
window.fetch = (url, ...args) => {
// 检查是否为短链接
if (isShortLink(url)) {
// 获取长链接
return fetch(getLongLink(url), ...args);
}
// 其他请求照常处理
return originalFetch(url, ...args);
};通过这两种方式,可以实现 iframe 引入短链并正确展示相应内容。










