在ajax回调中加载javascripts

时间:2010-04-27 16:15:46

标签: javascript ajax

情况:我发送一个ajax请求,该请求返回包含要在其上设置事件处理程序的元素的HTML。设置这些元素的处理程序的代码包含在单独的javascript文件中。

我一直在使用以下代码通过编写<head&gt;脚本来加载回调所需的js文件。标签。到目前为止我没有遇到任何问题,但是想知道这是否是一种安全可靠的方法(尤其是跨浏览器)。

function ajax_callback(response) {
    document.getElementById('dom_id_to_update').innerHTML = response;
    import_js('/path/to/js/file/');
}

function import_js(src) {
    var scriptElem = document.createElement('script');
    scriptElem.setAttribute('src',src);
    scriptElem.setAttribute('type','text/javascript');
    document.getElementsByTagName('head')[0].appendChild(scriptElem);
}

谢谢,Brian

2 个答案:

答案 0 :(得分:1)

烨。您甚至可以在添加script元素后立即删除它(尽管您可能希望将其保留以避免以后重新加载 - 例如,通过查看script中的head标记);显然只是添加它的行为是加载和解析代码所需的全部内容。 More here(该页面来自Prototype非官方wiki,但无论您是否使用Prototype,它都适用。)

答案 1 :(得分:1)

看起来你的jQuery看起来并不太糟糕,因为有一个函数live专门处理这种情况。 live函数将处理程序附加到现在和将来与选择器匹配的所有元素。因此,无论何时将新元素附加到页面,处理程序都将自动附加,而无需加载新脚本。

您可以在此处查看文档和示例:http://api.jquery.com/live/

相关问题