javascript - 嵌入式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>
加载我的示例 ^ 单击一首歌曲 > 单击后退按钮,您将看到我在说什么
注意:如果您单击列表中的歌曲以外的任何内容,则不会发生这种情况
解决方案
在 iframe 的 src 属性中的 URL 末尾添加 # 可以解决此问题:
这会将 iframe 设置为它想要前进到的状态
推荐阅读
- angular - 如何从 html 文件中调用服务方法。?
- python - 线性回归怀疑。手动验证值
- javascript - 使用 jquery 捕获所有单击事件,无论元素单击事件是否具有 stopPropagation
- animation - ThreeJS GLB IK 动画导出
- c# - 如何在 EF / EF Core 的第二个表上实现具有某些条件的左连接?
- javascript - 如何使用 Reactjs 代码开发 windows 桌面应用程序
- coq - 等号coq的解释传递性
- azure - 我们可以使用 Azure CLI 将文件上传到 Azure Data Lake Storage Gen2
- javascript - 查找匹配给定字符串中的两个子子字符串的正则表达式
- c - 如何添加十六进制数字?