Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检测包含iframe的页面的URL_Javascript_Html - Fatal编程技术网

Javascript 检测包含iframe的页面的URL

Javascript 检测包含iframe的页面的URL,javascript,html,Javascript,Html,“我的网站”提供了通过iframe(类似于Youtube或任何其他视频门户)嵌入来自我的网站的视频的功能 然而,有没有一种方法可以准确地检测出哪个网站将我的网站作为iframe 在iframe嵌入中尝试,尝试检测父项的URL if (window !== window.top) { console.log(window.top.location.href); console.log(window.parent.location.href); } 但结果是一个错误 Uncau

“我的网站”提供了通过iframe(类似于Youtube或任何其他视频门户)嵌入来自我的网站的视频的功能

然而,有没有一种方法可以准确地检测出哪个网站将我的网站作为iframe

在iframe嵌入中尝试,尝试检测父项的URL

if (window !== window.top) {
     console.log(window.top.location.href);
     console.log(window.parent.location.href);
}
但结果是一个错误

Uncaught DOMException: Blocked a frame with origin "https://myurl.com" from accessing a cross-origin frame.
    at console.log (<anonymous>)
    at https://www.myurl.com/embed/1544401:20:21
Uncaught DomeException:阻止了具有原点的帧”https://myurl.com“从访问交叉原点帧。
在console.log()上
在https://www.myurl.com/embed/1544401:20:21
有解决办法吗


UPD。通过使用
文档解决。referer

您无法使用JavaScript访问具有不同来源的
,如果您可以这样做,这将是一个巨大的安全漏洞。对于同源策略浏览器,阻止脚本尝试访问具有不同来源的帧

您可以使用
window.postMessage
及其相关消息事件在两个页面之间发送消息来解决此问题,如下所示:

//在主页中
const frame=document.getElementById('your-frame-id');
frame.contentWindow.postMessage(/*此处的任何变量或对象*/,'http://your-second-site.com');
//在您的中(包含在主页中):
window.addEventListener('message',event=>{
//重要提示:检查数据的来源!
if(event.origin.startsWith('http://your-first-site.com')) { 
//数据是从您的站点发送的。
//使用postMessage发送的数据存储在event.Data中:
console.log(事件数据);
}否则{
//数据不是从您的站点发送的!
//小心!不要用它。这是另一个分支
//为了清楚起见,你通常不需要它。
返回;
} 

});问题是主页不属于我,我想在我的iframe(属于我的网站)中检测它的url。Youtube不知怎么做到了。。。