私はこれに何年も取り組んできました。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
}
}
});
}