在其他选项卡中打开链接


open a link in a different tab

我有一个按钮,允许从推特进行身份验证,一切正常,但唯一的问题是我希望在不同的选项卡上打开登录推特.php页面,我尝试使用 window.open 代替标题,但它不起作用。 谁能说出它是如何做到

<?php 
ob_start();
session_start(); 
if (isset($_SESSION['id'])) {
    header("location: u_tasks.php");
}
if (array_key_exists("login", $_GET)) 
    {
        $oauth_provider = $_GET['oauth_provider'];
            if ($oauth_provider == 'twitter') 
                {
                    header("Location: login-twitter.php");
                } 
    }
?>
<!DOCTYPE html>
<html lang="en">
<head></head>
<body>
<?
    echo "<div class='col-md-9'>";
        echo "<a href='?login&oauth_provider=twitter'><button style='background-color:#1dcaff; border-color:#1dcaff; color:white; height:30px; border-radius:10px;'>Go To Twitter</button></a>";
    echo "</div>";
?>
</body>
</html>

我认为这对你很有帮助。

<a href='?login&oauth_provider=twitter' target="_blank"><button style='background-color:#1dcaff; border-color:#1dcaff; color:white; height:30px; border-radius:10px;'>Go To Twitter</button></a>

使用header("Location:...");只能进行重定向。据我所知,你必须做一些JavaScript或html来实现你的目标。另一个问题是浏览器喜欢阻止自动打开的弹出窗口,因为 99% 的时间自动弹出窗口仅由垃圾邮件发送者使用。但是,无论如何,我都会向您展示一种尝试执行此操作的方法:

<?php
$usingTwitter=0;
ob_start();
session_start(); 
if (isset($_SESSION['id'])) {
    header("location: u_tasks.php");
}
if (array_key_exists("login", $_GET)) 
    {
        $oauth_provider = $_GET['oauth_provider'];
            if ($oauth_provider == 'twitter') 
                {
                    $usingTwitter=1;
                } 
    }
?>
<!DOCTYPE html>
<html lang="en">
<head>
<script>
    <?php
        if($usingTwitter){
            echo "window.open('login-twitter.php');";
        }
    ?>
<script>
</head>
<body>
<?
    echo "<div class='col-md-9'>";
        echo "<a href='?login&oauth_provider=twitter'><button style='background-color:#1dcaff; border-color:#1dcaff; color:white; height:30px; border-radius:10px;'>Go To Twitter</button></a>";
    echo "</div>";
?>
</body>
</html>

不过,请确保在浏览器中关闭弹出窗口阻止功能!