在单击事件上保存外部域 iframe 的表单输入

Posted

技术标签:

【中文标题】在单击事件上保存外部域 iframe 的表单输入【英文标题】:Save a form input of an external domain iframe on a click event 【发布时间】:2015-08-12 01:28:38 【问题描述】:

在我的网站上,我正在显示一个外部域 iframe。 在这个 iframe 里面,有一个小游戏。一旦用户完成,就会出现一个输入和一个操作按钮。 我想获取 iframe 点击事件的 iframe 输入值。

IFRAME 调用

<iframe id="iframe" name="iframe" onload="FrameManager.registerFrame(this)" src="XXXXXX"></iframe>

IFRAME 数据

<input id="email" name="email">
<div id="send"></div>

问题

    如何检测外部特定 iframe div (#send) 上的点击事件? 如何保存输入值 (#email)?

谢谢

【问题讨论】:

您是否尝试过使用 $('#send').click( function() ); ? 感谢您的评论,但由于 iframe 位于另一个域中,因此无法正常工作:/ 另一个域是什么意思? 一个外部域。例如: - 我网站的网址:mysite.com - iframe 的网址:xxxx.com 但是你的 iframe 上有 #send-div 对吗? 【参考方案1】:

使用 php(超文本预处理器)进行持久存储。 它是一种服务器端脚本语言,可帮助您完成任务。

1) 你说出现了一个动作按钮。请更改以下内容:

   <div id="send"></div>

收件人:

  <input type="submit" name="submit_button" value="send"  />

然后全部以 POST 方法的形式包含您的电子邮件输入 例如:

       <form name="myForm" action="POST" >

              <input type="text" id="email" name="email" />
              <input type="submit" value="Send" />

       </form>

所以现在,使用 PHP:

  <?php

     /* The name of the input element is "email"  */

      if(isset($_POST['email'])) 

         /*This is to check if user pressed submit button .*/

         /*Now let us take the input value in a variable called email*/

             $email = $_POST['email'];

         /*Let us save it in a file called file*/

          $file = file ;
          file_put_contents($file , $email , FILE_APPEND);

       

  ?>

【讨论】:

感谢您的回答,但由于它是外部 iframe,我无法对其进行修改。

以上是关于在单击事件上保存外部域 iframe 的表单输入的主要内容,如果未能解决你的问题,请参考以下文章

是否可以为在 iframe(同一域)内导航的用户捕获 JS 事件?

在 Blazor 上单击 div 或元素外部以将其关闭的事件

事件跟踪:如何防止双重加载analytics.js

iframe 文件上传在 IE 上不起作用

使用 javascript 从指向不同域的 iframe 中获取选定的文本

Adobe air(HTML + JS)阻止图像,输入和文本区域的右键单击事件