Foto de Alex C.
Alex há 5 anos
Enviada pelo
Site

Abrir link em sequencia e voltar para o primeiro depois

Peguei um script que faz a abertura de links de forma randomica... mas eu precisava saber como crio um script para abrir um link por ves e depois retornar ao inicial. Ex. Clica no botao e ele abre link1. Clica outra vez e ele abre link2... mais uma vez e abre link3.... depois abre o link4.... e depois volta a abrir link1 novamente.
Estou usando este script para fazer ele abrir o link de forma randomica.... mas preciso que seja ele sequencial e depois da abertura do ultimo link ele volte a abrir o link1 novamente.
----------------------

<script>
<!--
/*
Botão com Links Randômicos 
*/

// Especifique os links para trabalharem de forma aleatória abaixo. Você pode inserir quantos achar necessário
var randomlinks=new Array()

randomlinks[0]="https://website1.com"
randomlinks[1]="https://website2.com"
randomlinks[2]="https://website3.com"
randomlinks[3]="https://website4.com"

function randomlink(){
window.location=randomlinks[Math.floor(Math.random()*randomlinks.length)]
}
//-FIM DO SCRIPT-
</script>
--------------

Obrigado!

Alex

3 respostas
Professor Jardel S.
Respondeu há 5 anos
Contatar Jardel

Bem simples, use como achar melhor.

#html

<a onClick="nextItem()" id="links" target="_blank">
CLICK ME
</a>

 

#Javascript

var arr = ['http://google.com', 'http://facebook.com', 'http://instagram.com'];
var i = 0;

function nextItem() {
i = i + 1;
i = i % arr.length;
return links.href = arr[i];
}

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Envie uma dúvida grátis
Resposta na hora da Minerva IA e de professores particulares
Enviar dúvida
Professor Everton C.
Respondeu há 5 anos
Contatar Everton

Olá Alex!
Vamos ver se consigo ajudar... Penso que para você continuar abrindo os links aleatóriamente e seguindo em sequência, seria importante você de alguma maneira armazenar os índices dos links que já foram abertos. Depois disso, fazer uma verificação pelo índice antes de abrir o link novamente. Se o link já foi aberto, deve ser descartado e gerado um novo índice randômico. Vou deixar um código abaixo apenas para ilustrar a minha lógica, faça a conversão e adaptação necessária se quiser usar este código.
Espero que a formatação aqui na tela fique boa o suficiente para entender o código.

var index;
var arrCheck;
var randomlinks=[];
 
this.randomlinks[0]="https://website1.com";
this.randomlinks[1]="https://website2.com";
this.randomlinks[2]="https://website3.com";
this.randomlinks[3]="https://website4.com";
 
randomlink(){
    this.index = Math.floor(Math.random()*this.randomlinks.length);
    this.handomCall(this.index);
}
 
handomCall(index){
    this.arrCheck.push(index).then(()=>{
    this.arrCheck.forEach(element => {
        if(element != index){
            window.location = this.randomlinks[index];
        } else {
            this.randomlink();
        }
        if(element === this.randomlinks.length-1){ 
            console.log("Útimo Elemento!");
            this.arrCheck = [];
        }
        return window.location = this.randomlinks[index];
        });
    });
}

<button onclick="randomlink()">Abrir Link</button>


Espero ter contribuído.
Desejo sucesso!

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Professor José R.
Respondeu há 5 anos
Contatar José

Use multidimencional array, estando o endereço (URL) no conteúdo relativo ao primeiro indice, e um sinalizador(flag) no conteúdo relativo ao segundo indice, utilizado para marcar o que já foi usado. Quando chega no fim do array, cria um reset para todos de modo a iniciar a sequência novamente

Veja o script abaixo funcionando: https://bomshopping.com/profes/js1/

<!DOCTYPE html>
<html>
<body>

<h2>Sequência -  segue na ordem Natural</h2>
<h3>Link1: https://globo.com</h3>
<h3>Link2: https://uol.com.br</h3>
<h3>Link3: https://estadao.com.br</h3>
<h3>Link4: https://msn.com.br</h3>

<script>

var links=new Array()

nlinks = [

["https://globo.com",0],

["https://uol.com.br",0],

["https://estadao.com.br",0],

["https://msn.com.br",0],

]

function callnext(){   //Cada vez que você clicar esta função é chamada e utilizará o registro no multdimencional array para saber quem é o próximo
    
   //alert("Função callnext chamada!"+" Tamanho do array="+nlinks.length);

   nlen = nlinks.length ;
   
   

   for(i=0;i<nlen;i++){
       if(nlinks[i][1]==0){ // o segundo elemento da linha do array com indice[1] mostra se aquele link já foi (valor 1) ou não usado (valor 0)

            alert("abre o link"+nlinks[i][0]);  //utiliza o primeiro liberado
            
            //window.open(nlinks[i][0],_blank);

            nlinks[i][1]=1; //irá sinalisar que já foi usado

            if(i==(nlen-1)){  //verifica se chegou no último item ou linha do array
                
                 alert("Entrou no Resset!");

                 for(j=0;j<nlen;j++){  //depois da abertura do ultimo link ele volte a abrir o link1 novamente.

                      nlinks[j][1]=0;  //resseta os indicadores pra iniciar novamente, volta ao link1

                  }

            }
            break;
       }

 

   }

 }
</script>
<button onclick="callnext()">Próximo da sequência</button>


</body>
</html>

 

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Minerva IA
do Profes
Respostas na hora
100% no WhatsApp
Envie suas dúvidas pelo App. Baixe agora
Precisa de outra solução? Conheça
Aulas particulares Encontre um professor para combinar e agendar aulas particulares Buscar professor