避免iframe的src里面出现登陆页面


//今天在修改项目时, 发现里面用到了iframe, 在写过滤器url里面没有session登陆时,
//会出现iframe里面登陆, 而不是整个页面跳转。故可以在登陆的jsp页面加入
//该判断
if (window != top) {
top.location.href = location.href;
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 UniApp 中,通过 `<iframe>` 的 `src` 属性来加载页面时,由于跨域安全限制,无法直接访问和操作 `<iframe>` 内部的节点。但可以通过使用 `postMessage` 方法在父页面和 `<iframe>` 之间进行通信,从而获取 `<iframe>` 内部节点的信息。 以下是一个示例代码: 在父页面中: ```vue <template> <view> <iframe ref="myIframe" src="https://www.example.com"></iframe> </view> </template> <script> export default { mounted() { // 监听来自 iframe 的消息 window.addEventListener('message', this.handleMessage); }, methods: { handleMessage(event) { // 判断消息来源是否是 iframe if (event.source === this.$refs.myIframe.contentWindow) { // 在控制台打印 iframe 内部节点 console.log(event.data); } } }, beforeDestroy() { // 移除消息监听 window.removeEventListener('message', this.handleMessage); } } </script> ``` 在 `<iframe>` 的页面中: ```html <!DOCTYPE html> <html> <head> <title>Child Page</title> </head> <body> <h1>Hello from Child Page</h1> <script> // 向父页面发送消息,传递节点信息 window.parent.postMessage(document.body.innerHTML, '*'); </script> </body> </html> ``` 在上述示例代码中,父页面中的 `<iframe>` 加载了一个子页面,当子页面加载完成后,它会向父页面发送一个消息,消息内容为 `<iframe>` 内部节点的信息。 在父页面中,我们使用 `window.addEventListener` 来监听来自 `<iframe>` 的消息。在 `handleMessage` 方法中,我们判断消息来源是否是 `<iframe>`,如果是,则表示收到了来自 `<iframe>` 的消息。我们可以在控制台打印出 `<iframe>` 内部节点的信息。 通过以上代码,你可以在父页面中通过监听消息的方式,获取到 `<iframe>` 内部的节点信息。 请注意,上述代码中使用了 `window.addEventListener` 和 `window.removeEventListener` 方法来添加和移除消息的监听器,确保在不需要监听消息时及时移除监听器,以避免内存泄漏。 以上是在 UniApp 中通过 `<iframe>` 的 `src` 属性渲染页面,并获取 `<iframe>` 内部节点的示例代码。根据你的实际需求和项目结构进行相应的修改和使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值