【问题标题】:Is it possible to add a browser code in javascript是否可以在javascript中添加浏览器代码
【发布时间】:2011-04-13 16:58:38
【问题描述】:

我想使用特定于 javascript 的浏览器创建一个网页。

例如:

我可以在我的编码部分使用这样的代码

chrome.tab.onRemoved.addListener() 在我的网页中。

如果可以的话,请给我建议。

【问题讨论】:

  • 你能说出你到底想达到什么目标吗?
  • 我需要捕捉标签关闭或浏览器关闭事件,以便在关闭前询问客户反馈。

标签: javascript cross-browser


【解决方案1】:

你到底想达到什么目标?

如果您想知道加载网页的选项卡何时关闭,window.onunload 应该可以帮助您。

如果您想知道另一个网页何时关闭,您不能这样做。

更新:
您说您想知道用户何时关闭浏览器或选项卡。这是不可能的。

但出于您的目的(获取反馈),我认为您需要的只是区分用户是导航到您页面中的链接,还是用户正在输入另一个 URL(或通过单击收藏夹)。

我认为对于您的要求,用户是否关闭浏览器,或者他是否键入另一个 URL,都是一样的 - 用户正在离开您的网站,而当时您说您要收集反馈。

这可以在 javascript 中完成。

对于您网页中的所有点击 可能会导致页面刷新 (超链接、按钮、...),设置一个标志。
window.onunload,检查是否 此标志已设置。
- 如果已设置,则 用户点击了您的链接 页面,什么都不做。
- 如果标志不是 设置然后用户正在导航, 是时候收集反馈了。

让我知道这是否可行。

PS:请注意,window.unload 期间的弹出窗口/任何干扰都可能非常烦人。 我知道这可能是给你的要求。但如果可能,请尝试其他机制从用户那里收集(自愿)反馈。

【讨论】:

  • 我只需要知道用户是在关闭页面还是只是在导航。在 window.onunload 和 window.onbeforeunload 中,事件触发所有导航和关闭事件。我特别需要找到浏览器或窗口关闭事件。
  • 我认为无法查看用户是否正在关闭窗口。但是出于您的目的,我认为查看用户是否通过您页面中的某个链接导航,或者用户是否输入了另一个 URL(或单击书签)以离开您的页面就足够了。已用可能的解决方案更新了答案。
  • 这应该是“自愿”反馈,顺便说一句。
  • @Nivas:刷新会发生什么?用户没有离开这里。未设置标志。这里将假设它是页面浏览器/标签关闭。
【解决方案2】:

不,您不能从网页访问特定于扩展程序的 API。

【讨论】:

    【解决方案3】:

    Navigator 对象包含有关访问者浏览器的所有信息。

    https://developer.mozilla.org/en-US/docs/Web/API/Window.navigator

    我认为这几乎是与特定浏览器交互的可能范围。您无法访问其他选项卡(出于安全原因)或告知选项卡何时关闭。

    【讨论】:

      【解决方案4】:

      您可以使用 onbeforeunload 事件:

      <html>  
        <head>
          <script>
      
          var exit = 1;
      
          function handleClose()
          {      
              if (exit)
              {
                  alert("Closing");
              }
          }
      
          </script>
        </head>
        <body onbeforeunload="handleClose()">
          <a href="test.html" onclick="exit=0">Navigate to other page</a>
        </body>
      </html>
      

      【讨论】:

      • 那是脚本运行的标签页,它不会告诉你另一个标签页是否已关闭...
      • 您无法确定其他选项卡是否已关闭,与您的网站无关。您不能这样做,因为这将是浏览器安全漏洞。
      • onbeforeunload 仅适用于已关闭的窗口,不适用于已关闭的浏览器。
      • 您的浏览器将首先关闭所有选项卡,然后自行关闭。所以在浏览器关闭之前会调用WINDOW。 developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-06
      • 1970-01-01
      • 2011-07-21
      • 1970-01-01
      • 1970-01-01
      • 2013-01-20
      相关资源
      最近更新 更多