将javascript变量发送到帧中
我试图将一些通过URL发送的动态参数组合到一个框架中,但没有任何效果。在标签里面,外面,之前,之后都试过了。。。有人能解释一下吗 顶部框架上的URL为。第一个脚本将获得语言(EN)和市场(US)。然后,使用另一个页面和我们的目标页面构建框架集,应该使用链接“”调用目标页面 这是无法工作的框架集的源代码将javascript变量发送到帧中,javascript,html,frameset,Javascript,Html,Frameset,我试图将一些通过URL发送的动态参数组合到一个框架中,但没有任何效果。在标签里面,外面,之前,之后都试过了。。。有人能解释一下吗 顶部框架上的URL为。第一个脚本将获得语言(EN)和市场(US)。然后,使用另一个页面和我们的目标页面构建框架集,应该使用链接“”调用目标页面 这是无法工作的框架集的源代码 <!DOCTYPE html> <html> <script type="text/javascript"><!-- var url = window.l
<!DOCTYPE html>
<html>
<script type="text/javascript"><!--
var url = window.location.href;
var language = url.substr(url.indexOf("country=") + 8,2);
var market = url.substr(url.indexOf("country=") + 11,2);
}
</script>
<frameset rows="36px,*" frameborder="0">
<frame id="main" src="header_cgh.html?country=BR_OP" noresize="noresize" scrolling="no" border="1" bordercolor=white>
<frame id="flow" src="">
</frameset>
<script type="text/javascript"><!--
document.getElementById("flow").src = "http://www.someurl.com/somefolders?LANGUAGE=" + language + "&MARKET=" + market + "&somefixedparameters=123";
</script>
</html>
它返回了预期的结果。但是它不会单独发生。下面是一个使用postMessage的示例。看看这是否能满足您的需求:
<iframe src="http://a.JavaScript.info/files/tutorial/window/receive.html" id="iframe" style="height:60px"></iframe>
<form name="form">
<input type="text" name="msg" value="Your message"/>
<input type="submit"/>
</form>
<script>
var win = document.getElementById("iframe").contentWindow
document.forms.form.onsubmit = function() {
win.postMessage(
this.elements.msg.value,
"http://a.JavaScript.info"
)
return false
}
</script>
var win=document.getElementById(“iframe”).contentWindow
document.forms.form.onsubmit=函数(){
博文(
this.elements.msg.value,
"http://a.JavaScript.info"
)
返回错误
}
从将脚本更改为:
window.onload = function() {
var url = window.location.href;
var language = url.substr(url.indexOf("country=") + 8,2);
var market = url.substr(url.indexOf("country=") + 11,2);
document.getElementById("flow").src = "/somefolders?language=" + language + "&market=" + market;
}
并将其放入头部的脚本
标记中
另外,作为提示:如果有人请求主框架集页面时没有查询字符串,或者其中没有country
参数,那么indexOf
返回-1,您的语言和market
变量就没有意义了。您需要想出一种更可靠的方法来获取这些信息。尝试共享一个JSFIDLE。奇怪的是,框架集被加载,第一个框架被加载。当我打开Chrome并使用控制台复制和粘贴相同的条目时| | document.getElementById(“flow”).src=“+language+”&MARKET=“+MARKET+”&somefixedparameters=123”;|它加载正确。所以,我认为它的某个地方缺少了一个“触发器”。谢谢你的提醒。我将尝试解决这个问题。无论如何,由于页面是在信息亭中运行的,初始请求将始终通过为该环境创建的快捷方式/链接完成,因此我只需确保他们始终具有此信息。
window.onload = function() {
var url = window.location.href;
var language = url.substr(url.indexOf("country=") + 8,2);
var market = url.substr(url.indexOf("country=") + 11,2);
document.getElementById("flow").src = "/somefolders?language=" + language + "&market=" + market;
}