我需要一些帮助,将参数从URL传递到帧。
示例:我的网址 - http://mysite.com?var1=2&var2=3
我有两个框架可以打开这些链接 -
http://othersite.com?id=<value of var1>
http://othersite.com?id=<value of var2>
我需要构建一个网页,在两个框架中打开两个网址。 为了做到这一点,我想将参数传递给我有的两个iframe:
使用此网址打开它:http://mysite.com?var1=242
该页面包含以下代码:
<frame name="frame1" src="http://myapp?id=<value of var1>#tab1">
<frame name="frame2" src="http://myapp?id=<value of var1>#tab2">
怎么做?将242的值放在每帧的src中?
JS新手。
谢谢,
帕卡。
答案 0 :(得分:-1)
只需将src
的{{1}}空/放在HTML中,然后将脚本添加到frame
页面的head
部分:
frameset
搜索字符串也应该是网址的最后一部分。如果您的window.onload = function () {
var n, key, vars = {},
searchString = window.location.search;
searchString = searchString.replace(/^\?/, '').split('&');
for (n = 0; n < searchString.length; n++) {
key = searchString[n].split('=');
vars[key[0]] = key[1];
}
window.frames['frame1'].frameElement.src = 'http://myapp?id=' + vars.var1 + '#tab1';
window.frames['frame2'].frameElement.src = 'http://myapp?id=' + vars.var2 + '#tab2';
}
与id
不同,则需要这样做:
242#tab1
如果设置window.frames['frame1'].frameElement.src = 'http://myapp#tab1?id=' + vars.var1;
的{{1}}不适合您,您可以在src
中设置frameElement
的位置:
window
答案 1 :(得分:-1)
在JavaScript中解析查询字符串,然后设置每个帧的src
,例如:
<script>
var params = (function() {
var obj = {};
location.search.substr(1).split('&').forEach(function(eq) {
var pair = eq.split('=');
obj[pair[0]] = pair[1];
});
return obj;
}());
[].forEach.call(document.getElementsByTagName('frame'), function(frame,index) {
frame.src = ['http://myapp?id=', params["var1"], '#tab1'].join('');
});
</script>