3
<html>
<head>
<script>
function replacesrc() {
    var array= new Array();
    array[1,2,3,4]=document.getElementById("From").value.split(" ");
    document.getElementById("map").src="https://maps.google.com/maps?f=d&amp;source=s_d&amp;saddr="+array[1]+"+"+array[2]+"+"+array[3]+",+North+Augusta,+SC&amp;daddr=Hilton+Head+Island,+SC&amp;geocode=FYn4_wEd4BQd-ym_ve9aOTP4iDGvGGPbsAEwOw%3BFfyU6wEdINAv-ymtGdOO3Hn8iDE9KKLreqblLA&amp;aq=1&amp;oq=hi&amp;sll=33.623768,-80.925293&amp;sspn=5.551464,10.129395&amp;hl=en&amp;mra=ls&amp;ie=UTF8&amp;t=m&amp;ll=32.88718,-81.37587&amp;spn=1.3416,1.24656&amp;output=embed"
    document.getElementById("test").value=array[1,2,3,4];
}


</script>
</head>
<body>

<iframe id="map" width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?f=d&amp;source=s_d&amp;saddr=2000+Knobcone+Ave,+North+Augusta,+SC&amp;daddr=Hilton+Head+Island,+SC&amp;geocode=FYn4_wEd4BQd-ym_ve9aOTP4iDGvGGPbsAEwOw%3BFfyU6wEdINAv-ymtGdOO3Hn8iDE9KKLreqblLA&amp;aq=1&amp;oq=hi&amp;sll=33.623768,-80.925293&amp;sspn=5.551464,10.129395&amp;hl=en&amp;mra=ls&amp;ie=UTF8&amp;t=m&amp;ll=32.88718,-81.37587&amp;spn=1.3416,1.24656&amp;output=embed"></iframe>
<br />From: <input id="From" type="text" /> <button onClick="replacesrc()">Directions</button><input id="test" type="text" value="test" />

<br /><small><a href="https://maps.google.com/maps?f=d&amp;source=embed&amp;saddr=2000+Knobcone+Ave,+North+Augusta,+SC&amp;daddr=Hilton+Head+Island,+SC&amp;geocode=FYn4_wEd4BQd-ym_ve9aOTP4iDGvGGPbsAEwOw%3BFfyU6wEdINAv-ymtGdOO3Hn8iDE9KKLreqblLA&amp;aq=1&amp;oq=hi&amp;sll=33.623768,-80.925293&amp;sspn=5.551464,10.129395&amp;hl=en&amp;mra=ls&amp;ie=UTF8&amp;t=m&amp;ll=32.88718,-81.37587&amp;spn=1.3416,1.24656" style="color:#0000FF;text-align:left">View Larger Map</a></small>

</body>
</html>

那是我的代码。它一直以未定义的方式传递它。有人可以帮我吗?我尝试了不同的方法来解决这个问题。但我还是不行。从我的观点来看,我做对了,因为我放了一个测试函数来查看它正在发送什么,我得到了同样的东西,但是当它把它放在 src 中时,它把它设置为未定义。

4

1 回答 1

1

试试这个代替前两行。然后访问从 0 开始的元素,array[0]第一项array[1]也是如此,第二项也是如此,依此类推。

var array = document.getElementById("From").value.split(" ");

最后一行使用这个:

document.getElementById("test").value = array.join();

为什么?

array[1,2,3,4]不符合您的预期。这是相当不直观的。此处的逗号不允许您访问多个数组索引。

1,2,3,4是使用了,3 次奇怪的逗号运算符的表达式。对于表达式,a,b表达式a被计算然后丢弃。Nextb被评估,它成为逗号运算符的值。

1,2,3,4 == ((1,2),3),4
        == (2,3),4
        == 3,4
        == 4

所以写作array[1,2,3,4]实际上与array[4].

于 2012-10-18T01:29:15.957 回答