Javascript 是否从框架向顶级文档发送事件?

Javascript 是否从框架向顶级文档发送事件?,javascript,jquery,html,frames,Javascript,Jquery,Html,Frames,我正在处理遗留代码,并试图将jQuery onClick触发器添加到顶级父文档中,但似乎无法使其正常工作。老实说,我不确定这个元素会有多少帧深 这是1996-1999年web应用程序的一个子部分。在应用程序的其余部分,单击按钮会触发jquery ui模式 我试过了 <img id="help-button" data-pagehash="Need This" onclick="$('#help-button', parent.document).click()"

我正在处理遗留代码,并试图将jQuery onClick触发器添加到顶级父文档中,但似乎无法使其正常工作。老实说,我不确定这个元素会有多少帧深

这是1996-1999年web应用程序的一个子部分。在应用程序的其余部分,单击按钮会触发jquery ui模式

我试过了

<img id="help-button" 
     data-pagehash="Need This" 
     onclick="$('#help-button', parent.document).click()" 
     src="stuff" />
但两者都不起作用,也没有出现错误。我真的不知道还能做什么。我真的没有太多使用框架的经验,因为它们大多是过时的,关于它们的信息很少


我还需要将数据属性发送到顶级父级,如果这样做有区别的话。我不确定这是否与DOM对象一起传递。

我与遗留应用程序的情况相同<代码>窗口。top将使您进入顶层文档。如果嵌套的深度超过一个,则您应该能够向下导航到正确的框架。要获取数据属性值,请使用
onclick=“window.top.frames[0].$(“#帮助按钮”).trigger('click',[this])”
将当前按钮/图像作为附加参数传递。然后,您可以从顶级绑定中获取数据,如下所示:

$("#help-button").on("click", function(e, additionalArgs) {
   var data = 'some default value';
   if(additionalArgs) {
      data = $(additionalArgs).data('pagehash');
   }

   $("#dialog").text(data).dialog();
}); 

对于正常的点击事件,additionalArgs值将被忽略。

这听起来很可怕……首先,它是同一个域?jQuery是在两个文档中加载的,还是仅在父文档中加载的?@epascarello jQuery加载在需要调用它的框架中以及顶层文档中。我知道这些都是一成不变的,但我不知道的是,在应用程序的某个地方,它们之间是否有任何其他帧抛出。如果这有道理的话。。。我知道最顶层是
main.htx
,触发事件的页面是
toolbar.htx
,两者都有jquery.Try
window.parent
-
$("#help-button").on("click", function(e, additionalArgs) {
   var data = 'some default value';
   if(additionalArgs) {
      data = $(additionalArgs).data('pagehash');
   }

   $("#dialog").text(data).dialog();
});