<head></head>
<script>
function check(val)
{
alert(document.getElementById(val).value)
}
</script>
</head>
<body>
<input name="textfield" type="text" value="888" id="test">
</body>
<script>
check("test")
</script>
</html>
这样是可以的,你那样在还没有运行到<input name="textfield" type="text" value="888" id="test">时就调用check肯定获取不到对象啊
或者这样
<html>
<head></head>
<script defer>
function check(val)
{
alert(document.getElementById(val).value)
}
check("test")
</script>
</head>
<body>
<input name="textfield" type="text" value="888" id="test">
</body>
</html>
加上defer表示加载完文档以后才开始执行js
父窗口中 get2方法的参数idd是个object(element)而子窗口中传递的参数却是个字符串,这样当然不行
把父窗口的get2方法改一下
function get2(sl,idd){
doument.getElmentById(idd).innerHTML=sl
}
或者改下子窗口传递的参数window.opener.get2("800", window.opener.document.getElementById("dxs737"))
推荐第一种,简洁不易错
说明:1、window.location可简写为location.
2、getSearchAsArray方法为解析location字串。即将字符串传递的名-值对(按传统的name1=value1&name2=value2)转换到一个索引名是名字的数组。
参数为window.location字串。
其中escape()函数将数据转换成url适用的格式,特别是当内容包含空格时。
网上还有另一种方法来解析location,即正则表达式,大家有兴趣可以搜索一下。
3、location具体可以容纳的字串长度,是否和地址栏的长度相同,有兴趣的朋友可以测一下。
//======================以下是页面源码=======================
第一个页面index.html代码如下:
<HTML>
<HEAD>
<TITLE>window.search test </TITLE>
</HEAD>
<BODY>
<INPUT TYPE="button" onClick="doclick()">
<SCRIPT LANGUAGE="JavaScript">
<!--
function doclick()
{
location="test.html?a=1&b=2&c=3"
}
//-->
</SCRIPT>
</BODY>
</HTML>
第二个页面test.html
<HTML>
<HEAD>
<TITLE>test.html </TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
var srchStr=location.search
load()
function load()
{
if(srchStr)
{
var srchArray=getSearchAsArray(srchStr)
alert(srchArray["a"])
alert(srchArray["b"])
alert(srchArray["c"])
}
}
function getSearchAsArray(srchStr)
{
var results=new Array()
var input=unescape(srchStr.substr(1))
if(input)
{
var srchArray=input.split("&")
var tempArray=new Array()
for(var i=0i<srchArray.lengthi++)
{
tempArray=srchArray[i].split("=")
results[tempArray[0]]=tempArray[1]
}
}
return results
}
//-->
</SCRIPT>
</BODY>
</HTML>
这是接收普通参数,数组应该差不多,只是思想,你看看吧