jQueryAjax包含脚本,即使页面是空的

jQuery Ajax - scripts are contained, even if page is empty

本文关键字:包含 脚本 jQueryAjax      更新时间:2023-09-26

我正在使用jQuery ajax来呈现一个HTML页面,该页面还包含javascript函数。我的代码是:

function ChartBook() {
        $.ajax({
            url: '/Charts/ChartBook',
            dataType: 'html',
            id: 1,
            traditional: true,
            type: 'GET',
            success: function (content) {
                $(document.body).empty();
                $(document.body).html(content);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert('An unexpected error occured.');
            }
        });            
    }

页面Chartbook包含一个函数"GetChartData()"。

它运行得很好,但当我以同样的方式调用另一个页面时,Chartbook页面现在不在正文中,但我仍然可以从函数"GetChartData"中获得警报消息。

当我用$(document.body).empty()从html主体中删除页面时,脚本怎么可能还在那里?

编辑:

另一个问题是,如果我回忆起"Chartbook"页面并返回到上一页,则函数"GetChartData()"会发出两次警告消息。每次加载Chartbook页面并返回上一页时,警报消息的数量都会增加。

脚本通常放置在header部分的body之上。因此它们不会被$(document.body).empty();删除,您也可以将其写为$('body').empty();

如果删除所有html,它们仍然在DOM中,检查这个也没关系