Javascript函数只返回1个值而不是值数组

时间:2013-02-19 05:09:44

标签: php javascript

我试图通过使用iframe找出页面加载时间。我有一个网址数组,我放入一个iframe数组,然后我通过使用javascript获得每个iframe的加载时间。我的问题 - 我的时间值不是一个数组,所以它只显示1个值(它显示第一帧的值,然后第二个,它将它替换为第二帧的值)。

   <html>
    <body>   
    <center>
    <?php 
    $url = array('example.com', 'example2.com');
    foreach($url as $i){ 
    ?>
    <iframe onload="pageloadingtime();" width="505" height="505" scrolling="no" security="restricted" src="<?php echo "http://www.".$i; ?> "></iframe>
    <?php
    } 
    ?>
    <div id="loadingtime"></div>
    </center>
    </body>
    <script type="text/javascript">    
    beforeload = (new Date()).getTime();
    function pageloadingtime()
    {
        afterload = (new Date()).getTime();
        secondes = (afterload-beforeload)/1000;
        document.getElementById("loadingtime").innerHTML = "<font color='red'>(Page took " + secondes + " seconds to load)</font>";
    }   
    </script>
    </html>

在这段代码中,我创建了一个url数组($ url),运行foreach循环,制作尽可能多的iframe,就像有url一样,然后使用javascript我计算页面加载时间。在我得到加载时间后,我把它放入“loadingtime”div。但就像我说它只放1个值而不是放一个值数组。

将其更改为此,但现在它没有显示任何内容:

beforeload = (new Date()).getTime();
function pageloadingtime()
{
    var afterload = (new Date()).getTime();
    secondes = (afterload-beforeload)/1000;
    document.getElementById("loadingtime1").innerHTML += "<font color='red'>(Page took " + secondes + " seconds to load)</font><br>";
}

1 个答案:

答案 0 :(得分:1)

附加到状态div而不是覆盖它:

document.getElementById("loadingtime").innerHTML += "<font color='red'>(Page took " + secondes + " seconds to load)</font><br>";

另外,将afterLoadsecondes声明为函数的本地:

var afterload = (new Date()).getTime();
var secondes = (afterload-beforeload)/1000;