Javascript:从内部对象调用顶级窗口函数

时间:2018-06-08 20:35:32

标签: javascript html svg

我有以下网页:



<!DOCTYPE html>
<html>
  <head>
    <meta charset='UTF-8'>
  </head>
  <body>
    <script>window.bark = function() {
      console.log('woof')
    }
    </script>
    <object role='img'
      data='https://dev.w3.org/SVG/tools/svgweb/samples/svg-files/android.svg'
      onclick='window.bark()' />
  </body>
</html>
&#13;
&#13;
&#13;

我知道object标签内的内容有自己的文档上下文,但我想知道:有没有办法允许对象调用绑定到窗口的函数?

1 个答案:

答案 0 :(得分:1)

在您当前的实施中,这是不可能的,而不是因为object的{​​{1}}处于不同的全局背景下。 (事实上​​,点击事件甚至不在window的文档中。它位于顶层文档中,因此范围不会有问题。)

这是因为您无法直接在object元素上有效收听点击。例如,同样适用于object。点击事件在元素的文档中触发,而不是在元素本身上触发。