GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Comando só executa via console

javascript
Tags: #<Tag:0x00007f31107372e0>

#1

Olá tenho um código js em uma pagina php onde quero simular o Ctrl+C do teclado, porem minha função sempre retorna FALSE, mas quando chamo minha função via console ela retorna TRUE!

    window.onload = function () {
    select();
};

function select() {
    var table = document.querySelector('.emailenviar');
    var range = document.createRange();
    range.selectNode(table);
    window.getSelection().addRange(range);

    setTimeout(function () {
        copiar();
    }, 1000);
}

function copiar() {
    try {
        var copiar = document.execCommand('copy');

        if (copiar) {
            console.log(copiar);
            console.log('Conteudo nao copiado');
            location.href = 'mailto:marcos.cesar.guerra@accenture.com?subject=Status Diario&body=';
            setTimeout(function () {
                location.href = "../status";
            }, 2000);
        } else {
            console.log(copiar);
            console.warn('Conteudo nao copiado');
        }
    } catch (err) {
        console.error('Comando COPIAR invalido');
    }
}

#2
<!DOCTYPE html>
<html lang="pt-br">

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Accenture | Status Diario</title>

    <link rel="icon" href="../img/favicon-16.ico" sizes="16x16">
    <link rel="icon" href="../img/favicon-32.ico" sizes="32x32">
    <link rel="icon" href="../img/favicon-48.ico" sizes="48x48">
    <link href="../css/bootstrap.min.css" rel="stylesheet">
    <link href="../css/body.css" rel="stylesheet">
    <link href="../css/main.css" rel="stylesheet">

    <script type="text/javascript">
        window.onload = function() {
            select();
        };

        function select() {
            var table = document.querySelector('.emailenviar');
            var range = document.createRange();
            range.selectNode(table);
            window.getSelection().addRange(range);

            setTimeout(function() {
                copiar();
            }, 1000);
        }

        function copiar() {
            try {
                var copiar = document.execCommand('copy');

                if (copiar) {
                    console.log(copiar);
                    console.log('Conteudo nao copiado');
                    location.href = 'mailto:marcos.cesar.guerra@accenture.com?subject=Status Diario&body=';
                    setTimeout(function() {
                        location.href = "../status";
                    }, 2000);
                } else {
                    console.log(copiar);
                    console.warn('Conteudo nao copiado');
                }
            } catch (err) {
                console.error('Comando COPIAR invalido');
            }
        }

    </script>

</head>

<body>
    <section class="areadetrabalho">
        <table class="emailenviar" id="emailenviar">
            <thead>
                <tr>
                    <th>Nº Chamado</th>
                    <th>Descrição</th>
                    <th>Horas</th>
                    <th>Data</th>
                    <th>Status</th>
                    <th>Funcional</th>
                    <th>Projeto</th>
                </tr>
            </thead>
            <tbody>

                <?php
include_once "conexao.php";
                    
if(isset($_GET['data'])) {
    $data = $_GET['data'];
    
    include_once "conexao.php";
    
    $sql = "SELECT * FROM t_statusd WHERE SD_DATA = '$data'";
    $result = mysqli_query($conexao,$sql);

     while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) {

                        switch ($row["SD_STATUS"]){
                            case 0:
                                $status = "<td id='status0'>Concluído</td>";
                                break;
                            case 1:
                                $status = "<td id='status1'>Testes</td>";
                                break;
                            case 2:
                                $status = "<td id='status2'>Desenvolvimento</td>";
                                break;
                            case 3:
                                $status = "<td id='status3'>Análise</td>";
                                break;
                            case 4:
                                $status = "<td id='status4'>Standby</td>";
                                break;
                        }
           
         $array = explode('-', $row["SD_DATA"]);
         $ano = $array[0];
         $mes = $array[1];
         $dia = $array[2];
        
        echo "<tr id='$row[SD_COD]'>
                  <td>$row[SD_CHAMA]</td>
                  <td>$row[SD_DESCR]</td>
                  <td>$row[SD_HORAT]</td>
                  <td>$dia/$mes/$ano</td>
                  $status
                  <td>$row[SD_FUNC]</td>
                  <td>$row[SD_PROJT]</td>
              </tr>";
        
    }

    mysqli_free_result($result);

    mysqli_close($conexao);
    
} else {
    header("Location: ../status");
    exit;
}

?>
            </tbody>
        </table>
    </section>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src="../js/bootstrap.min.js"></script>
</body>

</html>