`
- 浏览:
25956 次
- 性别:
- 来自:
杭州
-
iframe访问parent.location.hash出错
在使用iframe来实现跨域访问的时候,一直是通过parent.location.hash来实现父窗口和子窗口之间的通信的,但是需要注意到是:子窗口是不能直接设置parent.location.hash的,因为跨域访问父窗口的location的hash属性是被禁止的,而是应该直接设置parent.location.
比如原来是设置: parent.location.hash = "#foobar";
则需要修改为:parent.location = "http://example.com/page/#foobar";
来源:http://stackoverflow.com/questions/4324108/unsafe-javascript-attempt-to-access-frame-with-url
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
iObjH = parent.parent.frames["infoFrame"].frames["agentFrame"].location.hash; iObj.style.height = iObjH.split("#")[1]+"px"; } window.onload=pseth(); ``` 在上面的代码中,我们使用 js 来获取 iframe...
总结,JavaScript提供了多种在`iframe`之间传递值的方法,包括`postMessage()`、`window.name`、`location.hash`、Web存储API以及`window.parent`和`window.frames`。选择哪种方法取决于具体的需求,如是否跨域、...
需要注意的是,在这个例子中,如果想要实现iframe内页面的刷新,则应该使用parent.document.location.reload()方法,因为window.location.href = parent.location.href将使得iframe加载新的页面,而不是刷新。...
2. **利用`window.location.hash`**: 子页面可以改变URL的哈希值,父页面通过监听`hashchange`事件获取这些变化。这种方式适用于轻量级的通信。 3. **使用`localStorage`或`sessionStorage`**: 页面可以共享...
父页面可以通过修改`iframe`的`src`属性,添加查询参数或hash,`iframe`内部通过`window.location`获取这些信息。 4. `postMessage`的跨域代理 对于跨域的`iframe`,可以设置一个中间代理页面,通过这个代理页面...
window.parent.location.hash = '/newActivity'; // 这里写你自己要回退的Vue页面路径 }); } window.history.pushState('forward', null, '#'); // 在IE中必须得有这两行 window.history.forward(1); }); ``` ...
- `parent.parent.location.href`: 如果当前页面在一个嵌套的iframe中,可以通过这种方式访问更上一级的父窗口并进行跳转。 此外,还提供了一个名为`ParentRun`的函数,用于在子iframe中弹出警告框,显示“儿子...
这种情况下,可以通过改变iframe的location对象的hash属性值来实现间接通信。具体方法是在父页面中改变hash值,然后在子页面的JavaScript中设置一个定时器来检查hash的变化,从而实现通信。 示例代码如下: 父页面...
var a_iframe = parent.parent.document.getElementById("a_iframe"); var hash_url = window.location.hash; var hash_height = hash_url.split("#")[1] + "px"; a_iframe.height = hash_height; ``` 这段...
iObjH = parent.parent.frames["infoFrame"].frames["agentFrame"].location.hash; iObj.style.height = iObjH.split("#")[1]+"px"; } window.onload=pseth(); ``` 在这个过程中,`parent.parent`表示跳过一级...
3. **利用URL查询参数**:子页面可以修改自身`window.location.hash`或`window.location.search`,父页面通过监听`hashchange`或`popstate`事件来获取这些变化。 4. **使用`localStorage`或`sessionStorage`**:当...
var locationUrlHash = parent.parent.frames["aIframe"].frames["iframeProxy"].location.hash; var dimensions = locationUrlHash.split("#")[1].split("|"); pParentFrame.style.width = dimensions[0] + "px"; ...
var data = iframeB.location.hash.slice(1); // 处理接收到的数据 handleReceivedData(data); clearInterval(loop); // 停止定时器 } else { setTimeout(loop, 100); // 检查间隔 } })(); ``` ### 需求二:...
var data = location.hash.slice(1); // 处理data }, 500); // 每500毫秒检查一次 ``` 2. **子页面向父页面传递数据**: 由于跨域限制,子页面不能直接修改父页面的DOM。一种常见的解决方案是使用一个代理...
父页面可以直接访问iframe中的window对象来调用其中的方法和属性,同样iframe也可以通过访问parent对象来调用父页面的方法和属性。例如,父页面可以使用“myFrame.window.childMethod();”来调用iframe中的方法,而...
对于那些不支持`postMessage`的旧版浏览器(如IE8),可能需要使用其他方法,如设置`window.name`或者利用`window.location.hash`进行通信,但这会更复杂,且存在一些安全风险。 总之,处理`iframe`的跨窗口通信时...
4. `document.location`:这个对象包含了当前URL的各种部分,如`protocol`, `hostname`, `pathname`, `search`, `hash`等,可以分别访问这些属性来获取对应信息。 5. `top.location.href`:`top`引用顶级窗口,因此...
JavaScript(简称JS)是一种...例如,可以通过修改`location.search`来改变URL中的查询参数,或者修改`location.pathname`来改变访问的路径。这些操作通常用于在不离开当前页面的情况下,仅更新页面的某一部分内容。
`location`对象是`window`对象的一个属性,因此可以通过`window.location`来访问。它提供了获取和设置当前页面URL的各种信息,如协议、主机名、端口号、路径、查询字符串和哈希值。 1. **URL组成部分**: - **协议...
通过使用`parent.location`,可以确保跳转发生在包含当前框架的父窗口中。 #### 五、注意事项 1. **跨域限制**:不同协议或不同主机的两个地址之间不能互相引用对方的`Location`对象。例如,如果当前窗口打开的是`...