【发布时间】:2023-04-01 18:32:01
【问题描述】:
我有一个 iframe ,用户导航到该 iframe 中外部网站的某个位置。现在我有一个按钮,单击时会告诉该站点的位置(使用 .location.href),但它会发出未定义的警报?我的网站是 ideone.com。我怎样才能得到它的当前网址?任何更正或替代?
【问题讨论】:
标签: javascript html
我有一个 iframe ,用户导航到该 iframe 中外部网站的某个位置。现在我有一个按钮,单击时会告诉该站点的位置(使用 .location.href),但它会发出未定义的警报?我的网站是 ideone.com。我怎样才能得到它的当前网址?任何更正或替代?
【问题讨论】:
标签: javascript html
由于same-origin policy,您无法从iframe 访问任何信息,该iframe 的位置设置为与父域不同的域。
如果您查看浏览器的控制台 (F12),您可能会看到与此类似的错误(此错误来自 Chrome)
不安全的 JavaScript 尝试使用 URL 访问框架 http://othersite.com/ 来自带有 URL 的框架 http://yoursite.com。域、协议和 端口必须匹配。
【讨论】:
我认为您需要访问 iframe 的window,根据this answer,您应该可以通过:
document.getElementById('myframe').contentWindow.location.href
当然,可以根据需要获取对 iframe 的引用,因为密钥是 .contentWindow。但是,正如该链接所示,如果它是另一个域,那么同源策略会阻止您获取 window 引用。
【讨论】: