JS 如何传递对象参数

JavaScript07

JS 如何传递对象参数,第1张

<html>

<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>

这是接收普通参数,数组应该差不多,只是思想,你看看吧