首页 > 解决方案 > 嵌入式bandcamp iframe 更新网址?

问题描述

Bandcamp 为您提供用于 iframe 的 html,以将音乐嵌入您的网站

当用户点击 iframe 中的歌曲时,会发生一些事情,我不确定是什么。父 URL 没有改变,并且 popState 和 pushState 似乎都没有被触发,但用户仍然处于“额外”状态?(iframe 似乎也没有更改其 URL)

此时按下后退按钮不会执行任何操作,并且 popState 事件侦听器不会触发。如果用户然后再次单击后退按钮,它会像正常一样做出反应,并带有一个 popState 事件。

我知道,由于 iframe 不在我的域中,我对它的声音非常不走运。我尝试了一些建议来收听 pushState 事件,该事件有效,但在这种情况下不会触发

这是我的例子:https ://codepen.io/mugRuncher/pen/wvqJNJb

<iframe style="border: 0; width: 350px; height: 786px;" src="https://bandcamp.com/EmbeddedPlayer/album=3118567546/size=large/bgcol=ffffff/linkcol=0687f5/transparent=true/" seamless><a href="https://daysndaze.bandcamp.com/album/show-me-the-blueprints">Show Me The Blueprints. by Days N Daze</a></iframe>

加载我的示例 ^ 单击一首歌曲 > 单击后退按钮,您将看到我在说什么

注意:如果您单击列表中的歌曲以外的任何内容,则不会发生这种情况

标签: javascripthtmljqueryiframecross-domain

解决方案


在 iframe 的 src 属性中的 URL 末尾添加 # 可以解决此问题:

https://bandcamp.com/EmbeddedPlayer/album=3118567546/size=large/bgcol=ffffff/linkcol=0687f5/transparent=true/#

这会将 iframe 设置为它想要前进到的状态


推荐阅读