Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法从iframe调用函数_Javascript_Php_Html - Fatal编程技术网

Javascript 无法从iframe调用函数

Javascript 无法从iframe调用函数,javascript,php,html,Javascript,Php,Html,我有一个类似于仪表板的窗口。在仪表板内部,我有一个iframe,它充当向系统中的用户发送电子邮件的消息中心 我想做的是: 在下拉框中单击时将电子邮件收件人添加到文本字段的下拉框 我当前的代码: messages.js中的函数,将用户的电子邮件作为测试输出 function mountRecipient(user_email){ window.parent.console.log(user_email); } 在标记中构建标记的php。这在iframe中,它保存发送电子邮件的表单 fun

我有一个类似于仪表板的窗口。在仪表板内部,我有一个iframe,它充当向系统中的用户发送电子邮件的消息中心

我想做的是:

在下拉框中单击时将电子邮件收件人添加到文本字段的下拉框

我当前的代码:

messages.js中的函数,将用户的电子邮件作为测试输出

function mountRecipient(user_email){
    window.parent.console.log(user_email);
}
在标记中构建标记的php。这在iframe中,它保存发送电子邮件的表单

function userDropDown() {
    $dbConn = getConnection();
    $sqlRequestUserList = "SELECT * FROM academy_user";
    $user_list = $dbConn->query($sqlRequestUserList);

    foreach ($user_list as $value) {
        printf('<option onClick="mountRecipient(\'%s\');">%s %s: %s</option>', $value['user_email'], $value['f_name'], $value['l_name'], $value['user_email']);
    }

}
出于某种原因,单击下拉项时,onclick事件不会发生。如果我在chrome控制台中键入mountRecipienttest,那么我会从脚本中得到“test”

为什么onclick事件没有触发


我试图格式化代码,但无法正常工作,很抱歉,这将向select添加一个更改事件侦听器,您已在其中添加了需要使用的选项/为您的select设置了一个类,并将我的代码中的select替换为您的类。因此,当用户选择任何选项时,它将触发此事件。然后,在函数本身中,它只是将所选值发送给函数

document.getElementsByClassName('select')[0].addEventListener("change", function() {
     mountRecipient(this.children[this.selectedIndex].value);
});

这将向select添加一个更改事件侦听器,您在其中添加了需要使用/赋予select类的选项,并将我的代码中的select替换为您的类。因此,当用户选择任何选项时,它将触发此事件。然后,在函数本身中,它只是将所选值发送给函数

document.getElementsByClassName('select')[0].addEventListener("change", function() {
     mountRecipient(this.children[this.selectedIndex].value);
});

添加父项。如果它在同一个域上

onClick="parent.mountRecipient(\'%s\');"

在选择中使用onClick添加父项。如果它在同一个域上

onClick="parent.mountRecipient(\'%s\');"

使用onClick in select

可能是chrome的安全问题。您使用的浏览器是什么?控制台中是否有错误?您不能在跨浏览器上使用事件。很多人不支持it@Jodast我用的是铬合金的Opera。控制台中有一个警告,但我不认为它与此相关。@charlietfl您有什么建议作为替代?这可能是chrome的安全问题。您使用的浏览器是什么?控制台中是否有错误?您不能在跨浏览器上使用事件。很多人不支持it@Jodast我用的是铬合金的Opera。控制台中有一个警告,但我不认为它与此相关。@charlietfl您有什么建议作为替代?现代最佳实践是在xx方法上使用addEventListener现代最佳实践是在xx方法上使用addEventListener