我使用JQuery的html()函数插入HTML以及一些内联javascript。
似乎JQuery.html()是一个同步函数,但它不保证内联脚本在继续之前完成执行。
例如:
$elem.html(some_html_with_inline_scripts);
function_that_relies_on_inline_scripts_done_executing();
不起作用,因为我的内联脚本在函数调用之后执行。
有什么方法吗?
答案 0 :(得分:0)
对于解决方法来说这是怎么回事?
var scripts_loaded = false; //set this true at end of some_html_with_inline_scripts
$elem.html(some_html_with_inline_scripts);
function are_scripts_loaded() {
if (scripts_loaded) {
clearInterval(intid);
function_that_relies_on_inline_scripts_done_executing();
}
}
var intid = setInterval(are_scripts_loaded, 10);
如果加载了脚本,则每10毫秒进行一次测试。您可能希望将其从10增加到其他内容。