FriendlyIFrameとかSafeframeとか。
自分で使ってるやつを置いておく。SF系はこれから拡充する。

 scriptを囲んでいるFriendlyIFrameを取得したい

var fif = window.frameElement;

 scriptがiframe(FriendlyIFrameやSafeframe)に囲われているかどうかの判定をしたい

if(window !== parent) {
  // iframe
  if(window.$sf) {
    // safeframe
  } else if(window.frameElement) {
    // friendly-iframe
  } else {
    // other-iframe
  }
} else {
  // not iframe
}

inDapIF は判定に使っていない。稀に設定してない人がいるので……

 リファラーを取得したい

var url;
if (window.$sf) {
  // safeframe
  url = document.referrer;
} else if(window.frameElement){
  // friendly-iframe
  url = window.top.location.href;
} else {
  // other
  url = window.location.href;
}

 複数のFriendlyIFrameに囲われている時に、最も親のFriendlyIFrameにアクセスしたい

var w = window.window;
while(w.parent.frameElement) {
  w = w.parent.window;
}
var fif = w.frameElement;

最近それっぽく作ったやつ。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.