1

一段时间后,我试图通过使用 ajax 加载一个 php 文件。我想做的是一种测验。我希望用户看到一个图像屏幕 3 秒钟,然后看到答案选择。我想连续做 3 到 4 次。例如; 1)几秒钟后的问题图像 2)答案选择 单击答案后 3)第二个问题图像......然后继续这个顺序。

我可以用下面的代码做到这一点:

<script type="text/javascript">

var content = [
  "<a href='resim1a.php'> link 1 </a>",
  "<a href='resim2a.php'> link 2 </a>",
  "insert html content"
];
var msgPtr = 0;
var stopAction = null;

function change() {
  var newMsg = content[msgPtr];
  document.getElementById('change').innerHTML = 'Message: '+msgPtr+'<p>'+newMsg;
  msgPtr++;  
  if(msgPtr==2)
  clearInterval(stopAction); 
}

function startFunction() { change();  stopAction = setInterval(change, 500); }
 window.onload = startFunction;
</script>

<div id="change" style="border:5px solid red;width:300px; height:200px;background-Color:yellow"> </div>

但是,当这个文件被另一个文件包含时,这个脚本就不起作用了。我怎样才能让它工作?

<script type="text/javascript">
    function load(thediv, thefile){
      if (window.XMLHttpRequest){
      xmlhttp = new XMLHttpRequest();
    } else {
      xmlhttp = new ActiveXObject ('Microsoft.XMLHTTP');
      }
      xmlhttp.onreadystatechange = function(){
      if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
      document.getElementById(thediv).innerHTML = xmlhttp.responseText;
      }
     }
     xmlhttp.open('GET', thefile , true);
     xmlhttp.send();
    }
    </script>

上一页脚本在上面。我将此脚本与以下代码一起使用:

<div id="anotherdiv" >
        <input type="image" onclick="load('anotherdiv' , 'include.php');"src="buton1.png">
</div>
4

2 回答 2

0

原因是您希望窗口触发 onload 事件:

window.onload = startFunction;

ajax运行的时候就加载了window,为什么不直接调用这个函数呢?

startFunction();

如果在脚本之前需要一些 DOM 元素,只需将脚本放在 DOM 元素下面,脚本将在 DOM 准备好后运行。

于 2013-07-04T12:03:34.343 回答
-1

你需要change();function startFunction()

这是完整的例子点击这里

我希望它对你有帮助。

于 2013-07-04T12:16:46.960 回答