从框架发送事件到顶级文档?

问题描述 投票:3回答:1

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

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

我试过了

<img id="help-button" 
     data-pagehash="Need This" 
     onclick="$('#help-button', parent.document).click()" 
     src="stuff" />

      onclick="window.parent.$('#help-button').trigger('click')" 

但两者都没有工作,也没有抛出错误。我不确定还能做什么。我真的没有太多使用框架的经验,因为它们大多是过时的,关于它们的信息很少。

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

javascript jquery html frames
1个回答
2
投票

我和遗留应用程序的情况相同。如果您嵌套多个深度,Window.top会将您带到顶级文档,然后您应该能够向下导航到正确的框架。要获取数据属性值,请使用onclick="window.top.frames[0].$("#help-button").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值。

© www.soinside.com 2019 - 2024. All rights reserved.