我试图将通过网址发送的一些动态参数组合到一个框架中,但没有任何效果。在标签里面,在外面,之前,之后尝试过它们......有人能说清楚这个吗?
顶部框架上的网址为http://www.someurl.com/someparameters.html?country=EN_US。第一个脚本将获得语言(EN)和市场(美国)。然后,框架集使用另一个页面和我们的目标页面构建,应该使用链接调用" http://www.someurl.com/somefolders?LANGUAGE=EN&MARKET=US&somefixedparameters=123"
这是框架集的源代码,它不起作用。
<!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>
感谢您的帮助!
更新:打开Chrome的Javascript控制台并插入命令后:
document.getElementById("flow").src = "http://www.someurl.com/somefolders?LANGUAGE=" + language + "&MARKET=" + market + "&somefixedparameters=123"
它返回了预期的结果。但它不会自己发生。
答案 0 :(得分:1)
将您的脚本更改为:
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;
}
并将其放在script
的{{1}}标记中。
另外,作为抬头:如果有人在没有查询字符串的情况下请求主框架集页面,或者那里没有head
参数,那么country
会返回-1,最后你会得到废话在您的indexOf
和language
变量中。您需要提供一种更强大的方法来获取该信息。
答案 1 :(得分:0)
以下是使用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>
来自http://javascript.info/tutorial/cross-window-messaging-with-postmessage