先说个坑:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
function opennewwindow() {
window.location.href = 'http://www.baidu.com'
}
</script>
</head>
<body>
<form id="testetfomrid" method="post" action="http://www.baidu.com">
<input type="text" id="tertcc"></input>
<input type="submit" id="subtest">
</form>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
window.onload = function () {
strurl = {'1':'saaaaaaa','2':'ddddddddddddddd'}
var infoWindows = {}
for(var url in strurl) {
infoWindows[url] = window.open('testform.html')
infoWindows[url].onload = function () {
infoWindows[url].document.getElementById('tertcc').value = strurl[url]
}
}
}
</script>
</head>
<body>
<div id="test"></div>
</body>
</html>
打开的第二个子页面发现没有填充上值,这是因为js在执行完第一个onload后就不执行第二个了
解决办法:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<aid id="jsonurl" style="display: none">{{ jsonurl }}</aid>
<script>
window.onload = function () {
//jsonurl = window.document.getElementById('jsonurl').innerText
//var strurl = JSON.parse(jsonurl)
strurl = {'1':'saaaaaaa','2':'ddddddddddddddd'}
var infoWindows = {}
var a = 1
for(var url in strurl) {
infoWindows[url] = window.open('testform.html')
if(url == a){
onload(url);
}
a += 1
function onload(url) {
infoWindows[url].onload = function () {
infoWindows[url].document.getElementById('tertcc').value = strurl[url]
}
}
}
}
</script>
</head>
<body>
<div id="test"></div>
</body>