我尽可能多地使用Google搜索,并且我不确定iframe的文档是否支持在父窗口中获取自身的ID:window.frameElement.id
。有这么多浏览器,很难对它们进行全面测试,而且网上似乎没有任何信息。我特别想知道:
的Safari iOS Safari Windows Phone IE IE 7,8,9,10,11
(我测试了Firefox和Chrome,他们都工作过。)
示例IFRAME内容
<!DOCTYPE HTML>
<html>
<head></head>
<body>
<script type="text/javascript">
var owner = window.frameElement;
var thisIsWhoIsCalling = ( owner !== null ) ? owner.id : null;
window.parent.SomeJavaScriptObject.someFunction( thisIsWhoIsCalling );
</script>
</body>
</html>
答案 0 :(得分:4)
我碰巧寻找相同的信息。 这是我找到的。
https://developer.mozilla.org/en-US/docs/Web/API/Window.frameElement
除了MDN文档之外,我还测试了一些浏览器,并确认IE7 +,Safari,Firefox,Chrome都支持它。几乎所有的浏览器都是如此。
我没有在IE6上测试过,但我想你不需要关心。
答案 1 :(得分:0)
var frame = window.frameElement; //Get <iframe> element of the window
if (frame) { window.location.href = "/403.shtml"; ...
此代码在浏览器中不适合我(FF,Chrome,IE) 更喜欢这个,工作正常,跨浏览器...
if (window.self === window.top) window.location.href = "/403.shtml";
//or if (window.self !== window.top) window.location.href = "/403.shtml";