【发布时间】:2019-04-18 13:56:26
【问题描述】:
我有一个非常复杂的旧版多框架页面,它必须与 IE-11 兼容并且需要响应热键事件。
不幸的是,我注意到我不能只在父页面中声明一个 JS 方法。相反,似乎每个框架都需要自己的 document.onkeydown() 方法,因为现在,事件仅在我单击定义了方法 onkeydown() 的框架时才起作用。
有没有办法全局定义这个方法,让所有框架都处理这个事件?我试图避免我必须为每个页面声明相同的方法(或相同的 JS 代码)的不舒服情况(这将是一场噩梦,因为框架是由一些 struts/spring mvc 规则路由的动态生成的页面)
【问题讨论】:
-
您可以将该代码放入可重复使用的文件中:)
-
或者,只要在父框架中检测到热键,您就会向嵌套的 iframe 发送 PostMessage,然后它们将调用您希望由同一热键触发的内部函数。
-
@Strelok 当然。但是我需要在框架可能调用的所有页面上添加对它的引用?
-
@Terry 我不认为它是这样工作的。如果在母版页中定义了 onkeydown,则在单击任何内部框架时都无法识别它。这种情况我想避免它触及所有的内框页面(多达40、60)
-
我没有说您必须删除子页面中的按键绑定。我提出的是一种父框架通知子框架事件的方法,如果子框架不在焦点上。
标签: javascript html internet-explorer-11 frames