onload()之间的差异在javascript中使用

时间:2016-03-01 08:59:52

标签: javascript html

我想知道使用onload()函数的两种不同方式之间是否存在差异? (时间延迟,执行顺序等)还是完全一样?

由于

第一种方式:

<iframe onload="frameload()" src="script.php" name="myFrame" id="myFrame"></iframe>

<script>



function frameload(){


            var iframe = document.getElementById('myFrame'); 

            var innerDoc = iframe.contentWindow.document;

            document.write(innerDoc.getElementById('ele1').value);

        }

</script>
第二种方式:

<iframe src="script.php" name="myFrame" id="myFrame"></iframe>

<script>

document.getElementById('myFrame').onload=function() {

            var iframe = document.getElementById('myFrame'); 

            var innerDoc = iframe.contentWindow.document;

            document.write(innerDoc.getElementById('ele1').value);


}

</script>

3 个答案:

答案 0 :(得分:2)

在这个特定的例子中效果是一样的。 无论如何,如果您需要在函数中使用this,则在第一种情况下this引用Window对象,而在第二种情况下它引用iframe DOM节点。

此外,正如其他人所指出的,内联JS代码由于几个原因而不好。简而言之,最好将JS与HTML分开以提高可读性和缓存(例如,如果代码位于单独的文件中)。

答案 1 :(得分:0)

我想没有明显的性能差异,但是第二种方法可以帮助您分离关注点 - 标记(HTML)和功能(JS)。

答案 2 :(得分:0)

那两个应该是相同的。

通过

添加它会更好
.addEventListener("load", yourFunction);

如果您的情况不可行,您的代码应该可以正常运行。