передача значений javascript в тег iframe

каков наилучший способ передать значение, содержащееся в переменной javascript, в вызов iframe на той же странице html? Я пытаюсь улучшить время отклика страницы моего сайта, перемещая объявление, обслуживающее код javascript (типичный document.write('<script type="text/javascript" src="..") в отдельный iframe. (на основе этой проводки)

для запроса на сервер ad обычно требуется начальная переменная, объявленная один раз на сайте и увеличивающаяся каждый раз, когда страница загружается клиентом. Что я хочу сделать, так это пройти в переменная seed в документ, вызываемый моим разделом iframe.

переменная seed инициализируется в теге "head" моего основного html-документа:

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

позже в html-документе я делаю запрос через iframe, который возвращает html, необходимый для вызова сервера ad.

<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>

html возвращается в ' somepage.html " имеет скрипт, используемый для вызова сервера ad, и должен использовать ранее объявленную переменную seed в качестве параметр:

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

каков хороший способ достичь этого?

2 ответов


на только способ передачи значений непосредственно в iframe страницы с другим доменом - через url, как значения querystring, якоря или, возможно, некоторая форма перезаписи. Даже если он находится в том же домене, это, вероятно, самый простой и безопасный способ передать его.

Главная документ:

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

внутренний документ:

var seed = window.location.search.substring(window.location.search.indexOf('seed=') + 5);
if (seed.indexOf('&') >= 0) {
    seed = seed.substring(0, seed.indexOf('&'));
}

простой, чтобы получить значение в файле iframe:

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

и с помощью echo php $_GET['seed'];

внутри элемента кома;