在子域 iframe 中更改 window 位置 href
Change window location href in subdomain iframe
我有 a.example.com
和 b.example.com
;
当我将 b.example.com/foo
作为 iframe 放入 a.example.com
时:
<iframe src='b.example.com/foo'></iframe>`
可从 b.example.com
访问的 window.location.href
值是... a.example.com/foo
(??)...
问题是 - 我在 b.example.com/foo
中使用外部库来检查 window.location.href
,但它得到的信息不正确。
对于这种情况,在我看来我应该将 iframe /foo
内容放在一个完全不同的域中,例如:
anotherexample.com/foo
,其中 window.location.href
实际上指向 anotherexample.com/foo
。
如何强制 iframe 中的 window 对象实际使用其子域而不是带有添加参数的父域?
您确定您在正确的子域中使用您的脚本吗?看起来您的外部库正在使用 window.parent.location
访问父级 window,这里有一段代码可以检查页面是直接加载还是在另一个页面中加载:
var is_loaded_directly = (window.location == window.parent.location);
由于此代码有效,您的设置或库出现问题。
注意: 也许您可以通过检查 document.location
而不是 window.location
.
来解决您的问题
我有 a.example.com
和 b.example.com
;
当我将 b.example.com/foo
作为 iframe 放入 a.example.com
时:
<iframe src='b.example.com/foo'></iframe>`
可从 b.example.com
访问的 window.location.href
值是... a.example.com/foo
(??)...
问题是 - 我在 b.example.com/foo
中使用外部库来检查 window.location.href
,但它得到的信息不正确。
对于这种情况,在我看来我应该将 iframe /foo
内容放在一个完全不同的域中,例如:
anotherexample.com/foo
,其中 window.location.href
实际上指向 anotherexample.com/foo
。
如何强制 iframe 中的 window 对象实际使用其子域而不是带有添加参数的父域?
您确定您在正确的子域中使用您的脚本吗?看起来您的外部库正在使用 window.parent.location
访问父级 window,这里有一段代码可以检查页面是直接加载还是在另一个页面中加载:
var is_loaded_directly = (window.location == window.parent.location);
由于此代码有效,您的设置或库出现问题。
注意: 也许您可以通过检查 document.location
而不是 window.location
.