Если ваша идея не связана с оптимизацией запроса для быстрой загрузки страницы (например, menu.tpl генерируется очень долго, и вы хотите загрузить его позже) - тогда: самый простой способ - это сделать как это:
function docReady(fn) {
// see if DOM is already available
if (document.readyState === "complete" || document.readyState === "interactive") {
// call on next available tick
setTimeout(fn, 1);
} else {
document.addEventListener("DOMContentLoaded", fn);
}
}
docReady(function() {
console.log("OK");
document.getElementById("akj_menu_content").style.display = "block";
});
<div id="akj_menu_content" style="display:none;">
{include file="modules/widgets/akj-select-menu/akj-select-menu.tpl" assign=akj_menu_content}
</div>
Но .. если это связано с оптимизацией запроса, то docReady()
вы должны сделать запрос ajax, например www.example.com/my/menu/generator
, где вы генерируете это меню в php ( fetch
modules/widgets/akj-select-menu/akj-select-menu.tpl
в Smarty и верните его как HTML, чтобы JS мог вставить его в <div id="akj_menu_content"
)