将javascript变量中的值传递到同一个html页面上的iframe调用中的最佳方法是什么?我试图通过将提供javascript代码的广告(典型的document.write('<script type="text/javascript" src="..")移动到单独的iframe中来提高站点的页面响应时间。(Based on this posting)
对广告服务器的请求通常要求每个站点声明一次种子变量,并且在每次客户端加载页面时递增该种子变量。我想要做的是将种子变量传递到由我的iframe部分调用的文档中。
种子变量在我的主html文档的'head‘标签中初始化:
<head>
<script type="text/javascript">
<!--
custom_seed=1;
//-->
</script>
</head>稍后在html文档中,我通过一个iframe发出请求,它返回调用广告服务器所需的html。
<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>实现这一目标的好方法是什么?
发布于 2010-04-13 05:36:39
将值直接传递到具有不同域的页面的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('&'));
}发布于 2012-12-11 20:01:17
获取iframe文件中的值的简单方法:
document.getElementById("youfiled").value="";并使用echo php $_GET['seed'];
在coma元素的内部;
发布于 2019-02-06 10:22:05
这里有一个巧妙的解决办法,没有丑陋的url变量。虽然您不能将变量发送到iframe,但您可以调用函数来运行。
首先,在目标页面中编写一个函数来接收和设置变量:
<script type="application/javascript">
function variable(value) {
var seed = value;
</script>然后,您需要做的就是从原始页面调用函数:
<script type="application/javascript">
document.getElementById("IframeID").contentWindow.variable("value");
</script>https://stackoverflow.com/questions/2625615
复制相似问题