passage des valeurs javascript dans la balise iframe

Quelle est la meilleure façon de passer la valeur contenue dans une variable javascript dans un appel iframe sur la même page html? J'essaie d'améliorer les temps de réponse de la page de mon site en déplaçant le code Javascript de serveur de publicité (Le document.write('<script type="text/javascript" src="..") dans une iframe séparée. (sur la Base de cette affectation)

la requête adressée au serveur publicitaire nécessite généralement une variable seed déclarée une fois par site et incrémentée chaque fois que la page est chargée par le client. Ce que je veux faire c'est passer dans la graine variable dans le document invoqué par ma section iframe.

la variable seed est initialisée dans la balise' head ' de mon document html principal:

<head>
    <script type="text/javascript">
    <!--
    custom_seed=1;  
    //-->
    </script>
</head>

plus tard dans le document html, je fais la requête à travers une iframe qui renvoie le html nécessaire pour invoquer le serveur publicitaire.

<body>
<!-- a bunch of html to display the page -->
<iframe src="somepage.html" width="100%" height="100%">
<p>No support for iframe</p>
</iframe>
</body>

le html est retourné dans la page d'accueil.html' a un script utilisé pour appeler le serveur publicitaire et doit utiliser la variable seed déclarée plus tôt comme un paramètre:

<script type="text/javascript">
    document.write('<script type="text/javascript" src="http://ad.server.net/...seed='+ custom_seed  +'?"></script>');
    custom_seed++;
    </script>

Quelle est la bonne façon d'y parvenir?

7
demandé sur Cedar Jensen 2010-04-13 01:32:39

2 réponses

vous pouvez passer des valeurs directement à une iframe d'une page avec un domaine différent est à travers l'url, comme les valeurs de querystring, ancres, ou peut-être une forme de réécriture. Même s'il est sur le même domaine, c'est probablement la façon la plus facile et la plus sûre de le passer.

document Principal:

document.getElementById('IframeID').src = "somepage.html?seed=" + custom_seed;

document intérieur:

var seed = window.location.search.substring(window.location.search.indexOf('seed=') + 5);
if (seed.indexOf('&') >= 0) {
    seed = seed.substring(0, seed.indexOf('&'));
}
11
répondu tloflin 2010-04-12 21:46:50

Un simple loin pour obtenir la valeur en iframe fichier :

  document.getElementById("youfiled").value="";

Et echo php $_GET['seed'];

à l'intérieur de la coma élément;

0
répondu Squilo 2012-12-11 12:20:24