0

我在网页中嵌入了一个 iframe。这个 iframe 在一个元素中有一些rect元素svg。以下代码用于将事件绑定到 `rect 元素:

JS代码:

$(() => {
  let bindEvents = () => {
    let targets = $('iframe').contents().find('rect');
      $.each(targets, (elm, i) => {
        $(targets[elm]).on('click', () => {
            alert('Hello, World!');
        });
      });
  }
  setTimeout(bindEvents, 10000);
});

在 chrome 64 上,当打开开发者控制台时,这些事件将被删除。在 chrome 65 上,如果未打开开发人员控制台,这些事件将不会被绑定。这些问题发生在 Ubuntu 上的 chrome 中。Chrome 58 和 61 在绑定 evnet 方面没有问题。

HTML:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Metabase Test</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" media="screen" href="style.css"         />
    <script
      src="https://code.jquery.com/jquery-2.2.4.min.js"
      integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44="
      crossorigin="anonymous"></script>
    <script src="script.js"></script>
</head>
<body>
    <div id="content-root">
        <iframe width="100%" height="500" id="total-sales-test" src="url-from-metabase"></iframe>
    </div>
</body>
</html>

url 或 iframe 来自元数据库。我无法在此处发布完整的网址,因为它是机密的。

4

0 回答 0