我已经为此工作了很长时间,尝试使用 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
}
}
});
}