2017-07-18 6 views
0

Le code suivant recharge la page plutôt que l'URL souhaitéeconfirmer si ignore location.href

function delFile(name,id) { 
    if (confirm('Are you sure you want to DELETE '+name+'?')) { 
     location.href='/cgi-bin/cnc.cgi?phrsrg~038919718485478~'+id ; 
     alert('/cgi-bin/cnc.cgi?phrsrg~038919718485478~'+id); 
    } 
    else { 
     return false; 
    } 
} 

Dans l'alerte, l'identifiant est représenté comme étant ajoutée correctement et l'URL est correcte. Je peux le copier à partir de l'alerte, puis utiliser ce texte pour obtenir le bon résultat. D'autres scripts sur la même page qui utilisent un emplacement similaire.href fonctionnent parfaitement mais c'est le seul qui utilise la confirmation.

J'ai aussi essayé

window.location.href = "http://stackoverflow.com"; 

Mais la page rechargements encore.

Le lien de déclenchement est:

onClick="return delFile('Bill','1234') 
+0

Essayez d'afficher un [mcve]. Vous avez fourni des bits de votre code, mais pas tout le lien. – Quentin

+0

avez-vous essayé d'utiliser window.open ('http: //stackoverflow.com','_parent '); – Lekens

+0

accolades ouverture est manquant juste après la signature 'delFile' –

Répondre

1

href sur le lien de déclenchement est toujours en cours lié à, parce delFile() ne retourne false si le confirm n'est pas acceptée - c'est ce qui cause le rechargement de la page. Lorsque la fonction renvoie true, le lien se déclenche avant la redirection.

Vous souhaitez que la fonction renvoie false dans tous les cas, ne mettez donc pas le retour dans une clause else.

function delFile(name, id) { 
 
    if (confirm('Are you sure you want to DELETE ' + name + '?')) { 
 
    location.href = '/cgi-bin/cnc.cgi?phrsrg~038919718485478~' + id; 
 
    alert('/cgi-bin/cnc.cgi?phrsrg~038919718485478~' + id); 
 
    } 
 
    return false; // always, since you always want to prevent the link's default behavior. (Could also use event.preventDefault here.) 
 
}
<a href="/" onClick="return delFile('Bill','1234')">test</a>

0

Il ressemble à la fonction delfile() manque l'accolade d'ouverture, donc je commencerais par la fixation que. Si le problème persiste, vérifiez la console JS. En outre, poster un codepen serait utile.

+0

J'espérais que vous l'aviez trouvé, mais malheureusement, il s'agissait d'un copier-coller défectueux. L'accolade existe dans le script et a été ajouté via edit à ma requête. Merci – user2459855

+0

Vérifiez la console JS pour les erreurs et/ou essayez d'ajouter des points d'arrêt. Vous voulez préciser à quelle étape il échoue et pourquoi. –

0
function delFile(name,id){ 
    if (confirm('Are you sure you want to DELETE '+name+'?')) { 
    /* var fullpath = better to use the full url name/link;*/ 
    var url = '/cgi-bin/cnc.cgi?phrsrg~038919718485478~'+id; 
    window.open(url, '_parent'); 
     alert('/cgi-bin/cnc.cgi?phrsrg~038919718485478~'+id); 
    } 
    else { 
     return false; 
    } 
    } 
-1

Au lieu d'utiliser

window.location.href ="url" ; 

Essayez

window.location.replace("url") 

Cette méthode permet la charge du navigateur d'une manière différente.

Je n'ai pas testé cela, mais j'espère que cela fonctionne.