首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在另一个网站的iframe中,检测单击外部没有正确地工作在路由更改上

在另一个网站的iframe中,检测单击外部没有正确地工作在路由更改上
EN

Stack Overflow用户
提问于 2021-07-06 09:00:06
回答 1查看 277关注 0票数 3

我正在建立一个网页应用程序,将嵌入到另一个网页与iframe(相同来源)。它使用vue路由器进行路由更改。我想检测到点击外部,这样用户可以通过点击外部关闭应用程序。

我有以下代码(main.js):

代码语言:javascript
复制
/* Simple click outside detector for vue3 */
const clickOutside = {
  beforeMount: (el, binding) => {
    el.clickOutsideEvent = event => {
      //Check if the click was outside the el and his children
      if (!(el == event.target || el.contains(event.target))) {
        // and if it did, call method provided in attribute value
        binding.value();
      }
    };
    document.addEventListener("click", el.clickOutsideEvent);
  },
  unmounted: el => {
        document.removeEventListener("click", el.clickOutsideEvent);
      }
};

作为指令的用法(App.vue):

代码语言:javascript
复制
<div id="aimy-home" v-click-outside="handleCloseClick">
    <!-- CONTENT -->

    <!-- ROUTER CONTENT -->
      <router-view />
< /div>

很抱歉,我做不到一个片段。

上面的代码在主页上工作得很好。的问题是,在路由改变后,即使用户单击“内部”应用程序,应用程序也会关闭。

EN

回答 1

Stack Overflow用户

发布于 2021-07-12 14:40:16

您可以尝试在iframe上使用onBlur函数来检测焦点何时离开帧,可能吗?有点像

代码语言:javascript
复制
<iframe 
onBlur={()=>{console.log("iframe no longer focussed")}}
> 
[your content] 
<iframe />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68267512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档