7

javascript変数に保持されている値を同じhtmlページのiframe呼び出しに渡すための最良の方法は何ですか?document.write('<script type="text/javascript" src=".."広告配信のJavaScriptコード(通常)を別のiframeに移動することで、サイトのページ応答時間を改善しようとしています。(この投稿に基づく

広告サーバーへのリクエストには通常、サイトごとに1回宣言され、クライアントによってページが読み込まれるたびにインクリメントされるシード変数が必要です。私がやりたいのは、シード変数をiframeセクションによって呼び出されたドキュメントに渡すことです。

シード変数は、メインのhtmlドキュメントの「head」タグで初期化されます。

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

後のhtmlドキュメントで、広告サーバーを呼び出すために必要なhtmlを返すiframeを介してリクエストを行います。

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

'somepage.html'で返されるhtmlには、広告サーバーを呼び出すために使用されるスクリプトがあり、以前に宣言されたシード変数をパラメーターとして使用する必要があります。

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

これを達成するための良い方法は何ですか?

4

3 に答える 3

12

別のドメインを持つページのiframeに値を直接渡すことができる唯一の方法は、クエリ文字列値、アンカー、またはおそらく何らかの形式の書き換えとして、URLを使用することです。同じドメインにある場合でも、それを渡すのがおそらく最も簡単で安全な方法です。

メインドキュメント:

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('&'));
}
于 2010-04-12T21:36:39.270 に答える
1

これは、醜いURL変数を使用しない適切な回避策です。変数をiframeに送信することはできませんが、関数を呼び出して実行することはできます。

変数を受け取って設定するために、宛先ページで関数をプログラミングすることから始めます。

<script type="application/javascript">
    function variable(value) {
        var seed = value;
</script>

次に、元のページから関数を呼び出すだけです。

<script type="application/javascript">
    document.getElementById("IframeID").contentWindow.variable("value");
</script>
于 2019-02-06T02:22:05.383 に答える
0

iframeファイルの値を取得する簡単な方法:

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

そして、echo php $_GET['seed'];を使用します。

コマ要素の内部。

于 2012-12-11T12:01:17.410 に答える