Javascript 如何允许iframe访问Element.prototype

Javascript 如何允许iframe访问Element.prototype,javascript,Javascript,我已经创建了一些原型,比如hasClass(),这样我就可以调用e.target.hasClass('className')。现在,当我调用原型时,它可以工作,但是我的页面上有一个iframe,当我在页面生成器上工作时,我总是进出它。但是,如果我指的是iframe中的一个元素,那么该元素不存在原型函数 如何使元素.prototype函数在父级和iframe中工作?每个窗口都有自己的元素对象。您需要将函数添加到属于iframe以及父帧的元素的原型中 或者,不要添加自己的函数。使用: 每个窗口都有

我已经创建了一些原型,比如
hasClass()
,这样我就可以调用
e.target.hasClass('className')。现在,当我调用原型时,它可以工作,但是我的页面上有一个iframe,当我在页面生成器上工作时,我总是进出它。但是,如果我指的是iframe中的一个元素,那么该元素不存在原型函数


如何使
元素.prototype
函数在父级和iframe中工作?

每个窗口都有自己的元素对象。您需要将函数添加到属于iframe以及父帧的元素的原型中


或者,不要添加自己的函数。使用:


每个窗口都有自己的元素对象。您需要将函数添加到属于iframe以及父帧的元素的原型中


或者,不要添加自己的函数。使用:


您需要访问加载事件处理程序中的iframe窗口,并可以执行以下操作:

var frame = document.getElementById('ifrm');
frame.onload = function() {
  var win = this.contentWindow || this.contentDocument;
  win.Element.prototype.test = function() {
    this.innerHTML = 'Iframe Prototype content'
  }
  win.document.getElementById('heading').test()

}
因此,如果要将所有新原型属性包装到一个函数中,那么可以在主窗口上下文和框架窗口上下文中调用该函数


您需要访问加载事件处理程序中的iframe窗口,并可以执行以下操作:

var frame = document.getElementById('ifrm');
frame.onload = function() {
  var win = this.contentWindow || this.contentDocument;
  win.Element.prototype.test = function() {
    this.innerHTML = 'Iframe Prototype content'
  }
  win.document.getElementById('heading').test()

}
因此,如果要将所有新原型属性包装到一个函数中,那么可以在主窗口上下文和框架窗口上下文中调用该函数



使用iframe的加载事件在每个帧窗口内分配相同的原型属性,我将如何进行,我在iframe上有一个onload事件,但没有更多。啊,你的意思是将原型定义放在onload函数中。不可能扩展元素并将iframe传递给它以绑定原型吗?是的,在onload中,并以与在主页面中相同的方式定义它们使用iframe的load event在每个框架窗口中分配相同的原型属性我该怎么做,我在iframe上有一个onload事件,但没有更多。啊,你的意思是把原型定义放在onload函数中。难道不能扩展元素并将iframe传递给它以绑定原型吗?是的,在onload中,并以与主页中相同的方式定义它们谢谢。我有一个简短的问题。这对我来说很好,但如果我动态创建一个元素,那么函数就不适用于动态元素。我可以创建一些东西来查找新元素,并在创建时自动将原型分配给它吗?如果元素在dom中,我不明白为什么它不起作用。窗口元素没有更改。更新演示以重现问题啊,不,我一发送这个就注意到了问题。我的大多数原型工作正常。其中一个不是,这是因为我使用的querySelectorAll显然不是一个单独的元素。只是代表我打错了字。我道歉。谢谢你的帮助。好的,但是这个集合中的每个元素都应该是fneThanks。我有一个简短的问题。这对我来说很好,但如果我动态创建一个元素,那么函数就不适用于动态元素。我可以创建一些东西来查找新元素,并在创建时自动将原型分配给它吗?如果元素在dom中,我不明白为什么它不起作用。窗口元素没有更改。更新演示以重现问题啊,不,我一发送这个就注意到了问题。我的大多数原型工作正常。其中一个不是,这是因为我使用的querySelectorAll显然不是一个单独的元素。只是代表我打错了字。我道歉。谢谢你的帮助。好的,但该集合中的每个元素都应该是fne