Web
页面元素载入完成后触发(早于onload事件):
<script> document.addEventListener("DOMContentLoaded", (evt) => { console.log(evt); }); </script>
不存在 onDOMContentLoaded 属性,但有 ononline 等;可省略 event 入参: (/* evt */) => { };
DOMContentLoaded 触发后,保证函数只执行第一次(默认多处多次执行):
// Web Workers 中无法访问,故只会在主线程中进行原子性判断。
if (document.readyState === "loading") { // 此时文档加载尚未完成
document.addEventListener("DOMContentLoaded", once);
} else { once(); } // 已错过注册时机,故直接执行。
// 函数会在JS解析时自动提升至作用域顶部,即允许先调用再定义。
function once(evt) { console.log(evt.currentTarget); }
循环执行:
var cbNumber; var cbTimeout = 1000;
var cb = () => { // 不可见时循环执行空任务。
if (document.visibilityState === 'visible') {
console.log("interval callback - " + new Date());
}
};
cbNumber = setInterval(cb, cbTimeout); // 参3为callback入参。
window.addEventListener('beforeunload', () => {
if (cbNumber) { clearInterval(cbNumber); } // 关闭页面清除循环任务;无法遍历。
});
富媒体结构化数据:
注 - Google Search 已废弃搜索页嵌入站内搜索框:由 potentialAction 子项 SearchAction 定义。
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"url": "https://nav.congci.com/",
"name": "从此搜索",
"alternateName": ["Congci", "congci.com", "从此网"]
}
</script>