Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.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中未定义window.safari_Javascript_Iframe_Safari - Fatal编程技术网

Javascript iframe中未定义window.safari

Javascript iframe中未定义window.safari,javascript,iframe,safari,Javascript,Iframe,Safari,我有一个页面需要访问window.safari.pushNotification。加载该页面时,一切正常。但是,当此页面包含在iframe窗口中时,safari是未定义的 即使您位于同一原点,甚至添加 sandbox="allow-forms allow-popups allow-pointer-lock allow-same-origin allow-scripts allow-top-navigation" 这并不能解决问题 这是一个预期的行为还是一个bug?从iframe内部访问wind

我有一个页面需要访问
window.safari.pushNotification
。加载该页面时,一切正常。但是,当此页面包含在iframe
窗口中时,safari
未定义的

即使您位于同一原点,甚至添加

sandbox="allow-forms allow-popups allow-pointer-lock allow-same-origin allow-scripts allow-top-navigation"
这并不能解决问题

这是一个预期的行为还是一个bug?从iframe内部访问
window.safari
是否有任何变通方法?(我真的需要它)

复制这个问题很简单。只需将以下代码添加到页面,然后重试:

  • 直接加载
  • 使用iframe将其包含在另一个页面中

我相信这是有意的行为。是否需要访问iframe上的该对象?您可以通过
window.parent.sfari
引用父窗口的safari对象,这能满足您的需要吗?您到底想做什么?@JoshuaTerrill引用
window.parent.safari
有效,尽管同源策略限制会阻止您在跨源iframe中访问
window.parent
window.addEventListener('load', function () {
  console.log('safari' in window)
});