【问题标题】:jQuery input keypress event in iframe to parent not triggering functioniframe中的jQuery输入按键事件到父级不触发功能
【发布时间】:2013-06-27 18:25:17
【问题描述】:

我在文档中嵌套了 iframe。 我在父窗口中有一个输入字段,它触发 keyup 上的函数以根据输入获取数据。我无权访问 keyup 函数,所以我想基本上插入一个字符串并从 iframe 中触发一个 keyup 事件,以便该函数可以触发。

我的代码:

 parent.$("#my_input").focus();
 parent.$("#my_input").trigger(jQuery.Event('keyup', {keycode: 13}));

我已经绑定了一个警报事件来测试它是否真的触发了事件。确实如此。但是 keyup 函数没有被调用。 如果我物理按键,它会起作用,但当我使用 jQuery 触发它时不起作用。

我已经在 stackoverflow 上进行了全面搜索,但找不到类似的东西。

我试过了

  parent.$("#my_input").focus();
  parent.$("#my_input").keypress();
  parent.$("#my_input").keyup();
  parent.$("#my_input").blur();

还尝试使用其他键代码,如左箭头或随机字符。它们都不起作用。

任何建议都会很棒。 提前致谢。

【问题讨论】:

  • iframe 内容文档是否都在同一个域中,它们是否使用window.domain = ... 明确声明?
  • 是的,他们在同一个域中
  • 您是否在脚本中设置了window.domain = 'mydomain.com';?尝试将其添加到 iframe 内运行的脚本和外部运行的脚本中。

标签: jquery iframe keypress keydown keyup


【解决方案1】:
var ev       = jQuery.Event('keyup');
    ev.which = 13;

parent.$("#my_input").focus();
parent.$("#my_input").trigger(ev);

不确定parent 是什么,但是用选择器链接它看起来很奇怪?

你确定不只是

$("#my_input").focus().trigger(ev);

FIDDLE

【讨论】:

  • 我也这样做了。它不起作用。事件被触发,但附加到它的函数没有。但是,如果我用身体敲击一个键,它就会起作用......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-30
  • 1970-01-01
  • 2011-12-20
  • 2011-09-06
  • 1970-01-01
  • 1970-01-01
  • 2011-09-22
相关资源
最近更新 更多