2010-07-06 6 views
0

Je fais une page de taux de prêt. J'ai une URL qui, en entrant dans un navigateur, renvoie un nombre.L'URL renvoie un nombre. Comment puis-je affecter cette URL en tant que valeur à une variable?

Je dois être en mesure de le faire (en termes humains) ceci:

var x=http://www.wherever.com/assest?cmsid=P-2870159 

dans le code HTML:

<td>Our rate today is:<var x></td> 

Donc en javascript, je découpage seulement sur la façon dont je reçois la valeur renvoyée par l'URL à assigner à une variable que je peux documenter. écrire la variable dans un fichier html partout où j'ai besoin de la valeur.

L'URL reste la même mais le nombre qu'elle génère est dynamique.

Je n'ai pas un accès complet à l'endroit où l'URL est réellement hébergée. REMARQUE: l'URL ci-dessus est fictive mais le? Cmsid on est réel, donc c'est le bon format.

+0

Est-ce une variable POST? –

Répondre

5

Vous souhaitez effectuer un appel AJAX.

Un simple exemple jQuery:

$.get('http://www.wherever.com/assest?cmsid=P-2870159', function(data) { 
    x = data; 
    alert('x is now' + x); 
}); 

Notez que AJAX est asynchrone. Cela signifie que vous ne pouvez pas travailler immédiatement avec x dans votre code, mais vous devez mettre tout ce qui fonctionne avec le résultat récupéré dans le rappel success (la partie function(data) dans l'exemple ci-dessus).

Il est également possible de rendre l'exemple ci-dessus synchrone (de sorte que x soit disponible dans le script par la suite) mais cela n'est pas recommandé car cela pourrait geler le navigateur lorsque la requête expire. AJAX est une technique indépendante de jQuery, mais comme vous pouvez le voir, les frameworks JavaScript enlèvent beaucoup de tracas de ce qui serait un bloc de code de 10-20 lignes en utilisant JavaScript et l'objet XMLHTTPRequest. Notez que, comme @Paul Dixon dit, vous ne pouvez pas faire des appels AJAX interdomaines. La seule technique pour le faire est JSONP.

+1

Notez que pour ce faire avec une requête XmlHttpRequest (AJAX), la "politique d'origine identique" entre en jeu - vous ne pouvez faire des requêtes qu'au même domaine que la page d'hébergement. –

+0

Bon point @Paul, j'ai ajouté cela à la réponse. – Unicron

0

La réponse rapide, pensé qu'il pourrait ne pas être le mieux est de faire quelque chose comme

<td>Our rate today is<iframe id='rate' src='http://www.wherever.com/assest?cmsid=P-2870159 
'></iframe></td> 

Puis le style avec l'iframe css donc qui est en ligne et quelle que soit la taille dont vous avez besoin.

Pour éviter le même problème d'origine, vous pouvez toujours effectuer une requête HTTP sur le serveur et laisser le serveur récupérer le numéro, puis le renvoyer. Cependant, je pense que ce serait mieux juste pour le côté serveur de trou et juste l'insérer dans le code HTML avant que la page est envoyée au navigateur.

<td>Our rate is today is <?php getRate(); ?></td> 
Questions connexes