【问题标题】:How to trigger an event from iframe content to outer website?如何触发从 iframe 内容到外部网站的事件?
【发布时间】:2018-11-14 22:37:30
【问题描述】:

我正在开发旨在与所有域一起使用的聊天机器人。假设我在“chat.mybot.com”(iframe)下有一个聊天机器人端(在角度上完成)并且我的网站是“example.com”,在这里我无法收听“chat.mybot.com”的事件(iframe ) 来自“example.com”,因为它位于不同的域中。

如果它在同一个域上的解决方案

$('iframe#chat_bot').load(function(){
  $(this).contents().find("body").on('click','#showthat',function(event){ 
    alert("div with id 'showthat' clicked inside iframe"); 
  });
});

问题

跨域情况下怎么办?

我进行了一些研究并查看了其他聊天应用程序,但仍然无法清楚地知道如何操作。

感谢任何建议或想法。

【问题讨论】:

  • 我认为iframe应该是独立的和隔离的,尤其是在跨域的情况下。您可能无法跨框架触发事件。
  • @PalKerecsenyi :如果您检查“(相同的协议,相同的主机,相同的端口),我不认为这是重复的问题。”在其他问题中,您会理解..我正在寻找不同的域解决方案..我在问题中明确提到过..如果它与我在问题中显示的代码在同一个域中,我可以解决它。

标签: javascript angular iframe iframe-app


【解决方案1】:

这可能会对你有所帮助。

parent.$('body').trigger('eventName');

iframe 内部触发的事件会在父文档中检测到。

$('#InnerIframe').contents().find('#SuperWebF1').trigger( "click" );

InnerIframe - ID of IFrame
SuperWebF1 - ID of the button

【讨论】:

    猜你喜欢
    • 2011-07-13
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-29
    相关资源
    最近更新 更多