通过在JavaScript值到iframe标签

问题描述 投票:7回答:3

什么是在一个javascript变量保持到相同的HTML网页的iframe调用的值传递的最佳方式?我试图通过移动广告投放JavaScript代码(典型document.write('<script type="text/javascript" src="..")到一个单独的iframe来提高网站的页面响应时间。 (Based on this posting

在广告服务器的请求通常需要一个种子变量声明的每个站点一次,并增加每次页面被客户端加载。我想要做的是通过种子可变进我的IFRAME部分调用的文件。

种子变量初始化在我的主HTML文档的“头”标签:

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

什么是实现这一目标的好方法?

javascript html advertising
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('&'));
}

0
投票

一个简单的客场拿到IFRAME文件中的值:

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

并使用echo php $_GET['seed'];

内部的昏迷元件;


0
投票

这里有一个整洁的解决办法,没有丑陋的URL变量。虽然你不能变量发送到iframe,你可以调用运行功能。

通过在目标页面编程功能,接收并设置变量开始:

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

然后,所有你需要做的就是调用从原始页的功能:

<script type="application/javascript">
    document.getElementById("IframeID").contentWindow.variable("value");
</script>
© www.soinside.com 2019 - 2024. All rights reserved.