php - 在 HTML/PHP 中添加一个按钮来关闭一个选项卡

我正在尝试在我的 HMTL 表单中添加一个按钮,该按钮允许我关闭在网络浏览器中为 google recaptcha v3 打开的选项卡。我不仅想关闭程序打开的选项卡,而且还想在单击按钮后终止程序。关于我在以下代码中做错了什么的任何想法。

我知道我已经声明了'let myWindow;',但我没有为它分配任何东西。我是 HTML 的新手,所以我想知道是否可以就如何完成这项工作获得一些建议。谢谢你。

**<button onclick="closeWin()">Close Window</button>**    

**let myWindow;

function closeWin() {
    myWindow.close();
}**

整个源代码:

<?php
    define('SITE_KEY', '6Ldl-98fAAAAAKRPodblUlTcVgvrfWZ_8lODjmZA');
    define('SECRET_KEY', '6Ldl-98fAAAAAD3ekajHHVBi2X4fZTW37bI5IGUN');
    
    if($_POST){
        function getCaptcha($SecretKey){
            $Response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".SECRET_KEY."&response={$SecretKey}");
            $Return = json_decode($Response);
            return $Return;
        }
        $Return = getCaptcha($_POST['g-recaptcha-response']);
        //var_dump($Return);
    
        echo '<script type="text/javascript">alert(
             "\$Return->success: ' . $Return->success .
        "\\n\$Return->score: " . $Return->score . '");</script>';
    
        if($Return->success == true && $Return->score > 0.3){
            echo "Success!";
        }else{
            echo "Bot detected!";
        }
    }
    
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>ReCaptcha V3</title>
    <script src='https://www.google.com/recaptcha/api.js?render=<?php echo SITE_KEY; ?>'></script>
</head>
<body>
    <form action="/" method="POST">
        <input type="text" name="name" /><br />
        <input type="hidden" id="g-recaptcha-response" name="g-recaptcha-response" /><br />
        <input type="submit" value="Submit" />
        **<button onclick="closeWin()">Close Window</button>**
    </form>
    <script>
    grecaptcha.ready(function() {
    grecaptcha.execute('<?php echo SITE_KEY; ?>', {action: 'homepage'})
    .then(function(token) {
        //console.log(token);
        document.getElementById('g-recaptcha-response').value=token;
    });
    });

    **let myWindow;

    function closeWin() {
        myWindow.close();
    }**
    </script>
</body>
</html>

回答1

如果选项卡已使用 javascript 打开,则必须将选项卡的名称分配给变量。未使用 javascript 打开的选项卡无法使用代码关闭。参考:https://developer.mozilla.org/en-US/docs/Web/API/Window/close

相似文章