我是否可以仅允许某些视图在iframe中呈现?

时间:2016-04-27 10:04:41

标签: ruby-on-rails iframe

我有一个应用程序在其他网站的iframe中提供小部件。到目前为止这么好但我怎么能允许这些小部件视图只在iframe中加载而不是直接加载?

这应该有效

<iframe src="http://www.example.com/widgets/example">

但是,不应该允许直接在浏览器中输入http://www.example.com/widgets/example

在轨道中实现这一目标的最佳途径是什么?

1 个答案:

答案 0 :(得分:0)

首先需要检查您的页面窗口是否与父窗口相同,如果没有,那么您的页面是否在iframe中:

function inIframe () {
  try {
    return window.self !== window.top;
  } catch (e) {
    return true;
  }
}

如果没有,你可以删除DOM中的所有内容:

// Pure JS something like
var myNode = document.getElementById("foo");
myNode.innerHTML = '';
// jQuery
$('html').empty();

或者你可以重定向到一个空白页面,说明不允许在iframe之外查看它:

 window.location = "http://www.yourul.com/empty_page";

Referring to