2010-04-15 8 views
0

HI all,Fonction Javascript fonctionnant étrangement lors du premier appel dans CHROME?

Le code javascript ci-dessous fonctionne correctement dans tous les navigateurs, y compris le chrome (à partir du second appel).

function call(val){ 
     url = window.location.href; 
     indexnum = url.lastIndexOf("/"); 
     str = url.slice(indexnum+1); 
     window.location.href = url.replace(str, "sample.php?src_q=") + val; 
    } 

J'appelle cette fonction onclick d'un lien ci-dessous

<?php echo "<a href='#' onclick='javascript:call(\"$fieldvalue\");'>$fieldvalue</a>" ?> 

Comportement normal: Dans tous les navigateurs après avoir cliqué sur le lien nouvelle URL est formé

url: // localhost /mysite/sample.php?src_q=val

Comportement étrange: Lorsque je clique sur le lien pour la première fois dans la valeur chromatique de la variable val est remplacé par url et son val comme suit UE

http://localhost/mysite/sample.php?src_q=http://localhost/mysite/val

Ce comportement étrange se produit au cours du premier clic en chrome. À partir du deuxième appel dans le même onglet, la valeur de la variable val fonctionne très bien et j'obtiens l'URL désirée.

J'ai essayé de google dessus, mais je n'ai trouvé aucune explication.

Merci d'avance.

+3

La fonction que vous appelez et la fonction ne correspondent pas au courant ... est ceci la bonne fonction et juste une question d'erreur, ou d'une autre manière? –

+0

Aussi: débarrassez-vous de ce préfixe "javascript:" de votre attribut "onclick". C'est inutile. (Rien à voir avec votre problème, cependant.) – Pointy

+0

De plus, les attributs HTML entre guillemets simples ne sont pas valides – kibibu

Répondre

1

Quelques choses:

  1. Laissez tomber le "javascript:" depuis le début de la onclick. Vous utiliseriez cela dans un href, pas dans un onclick.

  2. Vous pouvez annuler la navigation lorsque l'utilisateur clique sur le lien, en retournant false:

    onclick='callSearch2(...); return false;' 
    
Questions connexes