正在对已加载的元素调用onload



如果对已经加载的元素(例如iframe(调用onload(),会发生什么?

假设myIframe已经加载,我执行以下操作:

myIframe.onload = function () { console.log('iframe loaded') };

它会执行吗?

  1. 这不是一个有效的JavaScript语法。执行代码myIframe.onload() = function () { console.log('iframe loaded') };将导致错误

未捕获引用错误:分配中的左侧无效

  1. onload事件不存在,但load事件存在,将其附加到HTML元素的正确方法是iframe.addEventListener("load", () => console.log("iframe loaded"));
  2. 一旦加载了iframe,它将不会再次接收加载事件,但您可以手动创建事件并将其传递给元素var event = new Event("load");iframe.dispatchEvent(event);
  3. 一旦您调度了加载事件,导致iframe接收了两次加载事件,您将在控制台中看到两次打印的"iframe loaded">

var iframe = document.getElementById("frame");
		iframe.addEventListener("load", () => console.log("iframe loaded"));
		var event = new Event("load");
		iframe.dispatchEvent(event);
<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<title>
Functions
</title>
</head>
<body>
	<iframe id="frame" src="http://support.worldpay.com/support/kb/gg/corporate-gateway-guide/content/resources/images/hpp_iframe_-_paymt_mthd_select_page_04.jpg"></iframe>
</body>
</html>

最新更新