我想知道使用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>
答案 0 :(得分:2)
在这个特定的例子中效果是一样的。
无论如何,如果您需要在函数中使用this
,则在第一种情况下this
引用Window
对象,而在第二种情况下它引用iframe
DOM节点。
此外,正如其他人所指出的,内联JS代码由于几个原因而不好。简而言之,最好将JS与HTML分开以提高可读性和缓存(例如,如果代码位于单独的文件中)。
答案 1 :(得分:0)
我想没有明显的性能差异,但是第二种方法可以帮助您分离关注点 - 标记(HTML)和功能(JS)。
答案 2 :(得分:0)
那两个应该是相同的。
通过
添加它会更好.addEventListener("load", yourFunction);
如果您的情况不可行,您的代码应该可以正常运行。