我目前的解决方案:
function isAccessToWindowRestricted(w) {
try {
return !w.location.href;
} catch (e) {
return true;
}
}
有更好的想法吗?有没有没有try-catch的“合法”方式?
我目前的解决方案:
function isAccessToWindowRestricted(w) {
try {
return !w.location.href;
} catch (e) {
return true;
}
}
有更好的想法吗?有没有没有try-catch的“合法”方式?
没有好的方法,因为没有办法测试父框架中的值是否存在而不抛出异常。
我只是尝试了一些事情,包括:
var parentURL = window.parent && window.parent.location && window.parent.location.href;
无论如何,由于相同的来源策略,它会抛出异常。但是,您可以检查一下您是否在 iframe 中
function checkInFrame( arg ){ arg = arg || window; return arg.parent == window; }
但据我所知,您必须使用一个try { ... } catch( ... ) { ... }
块(这就是它的用途)。