0

我已经为此工作了很长时间,尝试使用 win.load()、win.ready() 等,但没有成功,我正在尝试将 flot 函数用于弹出子窗口,但是我还没有找到一种方法来让函数等待dom完全加载。因此,每次我让它自然运行时,它都会抱怨它找不到要写入的 div。使用调试器时,如果我在窗口打开后使用 firebug 暂停并让它再次运行,它工作正常。

   if (newwindow) {
        var win = window.open("pop_up.htm", 'window', "height=400,width=900");

        $.plot($("#pie_chart", win.document), data,
        {
            series: {
                pie: {
                    show: true
                },
                legend: {
                    show: false
                }
            }
        });
    }
    else {
        $.plot($(graph_id), data,
        {
            series: {
                pie: {
                    show: true
                },
                legend: {
                    show: false
                }
            }
        });
    }

好吧,我已经走到这一步了,它在 FF 中有效,但在 IE6 中无效....有什么想法吗?

function generatePieChart(graph_id, objData, hyperlinks, newwindow) {

    var data = objData;
    for (var i = 0; i < data.length; i++) {
        var num = parseInt(objData[i][1]);
        if (hyperlinks == true) {
            data[i] = { label: "<a class='user_pie_link super_light_box' id='" + objData[i][0] + "'>" + objData[i][0] + " <span style='float: right;'>" + objData[i][1] + "</span></a>", data: num }
        }
        else {
            data[i] = { label: "<p id='" + objData[i][0] + "'>" + objData[i][0] + " <span style='float: right;'>" + objData[i][1] + "</span></p>", data: num }
        }
    }

    if (newwindow) {

        var win = window.open("pop_up.htm", "window", "height=400, width=900");
        win.moveTo(50, 50);

        $(win.document).load(function () {
            generatePopOutPieChart(win, data);
        });

    }
    else {
        $.plot($(graph_id), data,
        {
            series: {
                pie: {
                    show: true
                },
                legend: {
                    show: false
                }
            }
        });
    }

}

function generatePopOutPieChart(win, data) {

    $.plot($("#pie_chart", win.document), data,
        {
            series: {
                pie: {
                    show: true
                },
                legend: {
                    show: false
                }
            }
        });
}
4

0 回答 0