我可以根据 url 更改 iframe src 吗?

Posted

技术标签:

【中文标题】我可以根据 url 更改 iframe src 吗?【英文标题】:Can I change the iframe src according to the url? 【发布时间】:2014-04-11 00:11:33 【问题描述】:

在 site.com/page1 和 site.com/page2 中发现了一个 iframe 与一些不同的页面,例如 <iframe src="..."></iframe>,我想根据上面的 url 更改 iframe src,我可以这样做,如果可以的话我可以这样做吗?请帮忙!

注意:url 是动态的,所以我不能使用 if else 条件

谢谢

【问题讨论】:

【参考方案1】:

是的。

最简单的解决方案是不要在 html 中设置 iframe src,只需声明 iframe 标签并给它一个 id,比如“myIframe”。

然后只做一些简单的javascript

var iframe = document.getElementById('myIframe');
if(window.location.href === SITE_1_URL)
   iframe.src = something;
 else 
   iframe.src = somethingElse;

注意 iframe 在设置 src 属性之前不会加载。

【讨论】:

谢谢,但我需要的不仅仅是两页,而是很多页,我不想写 if else 因为url是动态的 当然你可以根据window.location执行任何你想要的逻辑。因此,如果您有一些函数 foo 获取*** url 并为该***页面返回适当的 iframe url,那么您只需执行 iframe.src = foo(window.location.href);【参考方案2】:

在页面就绪事件中,您检查当前 url 并根据设置 iframe src 属性 see this link

【讨论】:

使用像asp或php这样的服务器端技术会很容易..你没有提到你在使用什么 我使用 PHP,我将如何在 PHP 中做到这一点?

以上是关于我可以根据 url 更改 iframe src 吗?的主要内容,如果未能解决你的问题,请参考以下文章

iFrame src 更改事件检测?

如何根据窗口的顶部 URL 在 iframe 中更改徽标

为啥 iframe 可以从不同的域更改父窗口的 URL?

如何在flutter web中动态更改iframe的src?

Ionic 3-根据屏幕尺寸更改iframe内容大小

没有 src 的 iframe - 我可以吗?