我正在使用遗留代码并尝试将jQuery onClick触发器添加到顶级父文档中,但我似乎无法使其正常工作。老实说,我不确定这个元素会有多少帧。
这是1996-1999的网络应用程序的子部分。在应用程序的其余部分中,单击该按钮会触发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对象一起传递。
答案 0 :(得分: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值。