服务器x上有第X页,带有像这样的html文件
<script type="text/javascript" src="http://pageYserverY.com/remote.php?hat=strong"></script>
<div name="lev">Hallo world</div>
考虑JS文件包含在远程服务器Y中。
第Y页(remote.php)上的文件如下所示:
<?php
Header("content-type: application/x-javascript");
$hat = $_GET["hat"];
echo "document.write(\"$hat\");"; // write it once
?>
document.getElementsByName("lev").innerHTML="Hello World AGAIN";
为什么不改变div。我的整个方法和我对跨浏览器JS的理解是错误的吗?
顺便说一句:调用php生成的js是google本身在recaptcha和google广告上使用的方法。答案 0 :(得分:1)
我想你会发现它只是一个订购问题。在div准备好之前,JavaScript正在执行。
将脚本移动到div下面,如下所示:
<div name="lev">Hallo world</div>
<script type="text/javascript"
src="http://pageYserverY.com/remote.php?hat=strong"></script>
答案 1 :(得分:1)
最好使用getElementById
的{{1}}。
getElementsByName
方法返回一个数组,当您尝试调用GetElementsByName
时,由于阵列上没有element.focus()
方法,因此出现错误。当您在事件处理程序中收到错误时,它不会阻止表单发布。
如果您使用focus
,则应使用GetElementById
来访问该元素,如果您使用element
,则应使用GetElementsByName
。
重复
element[0]
然后这是工作:
getElementById gets an element via an id. getElementsByName returns an Array of elements by their name.