我有一个应用程序在其他网站的iframe中提供小部件。到目前为止这么好但我怎么能允许这些小部件视图只在iframe中加载而不是直接加载?
这应该有效
<iframe src="http://www.example.com/widgets/example">
但是,不应该允许直接在浏览器中输入http://www.example.com/widgets/example
。
在轨道中实现这一目标的最佳途径是什么?
答案 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";