在单击事件上保存外部域 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 或元素外部以将其关闭的事件