หมายเหตุ: สิ่งต่อไปนี้เป็นสิ่งที่ดีในการหลีกเลี่ยงการหน่วงเวลา - ทันเวลา ตัวอย่างสามารถใช้ได้โดยสคริปต์ทั้งหมด (จำเป็นต้องใช้) แต่ใช้กับ Greasemonkey เป็นพิเศษ นอกจากนี้ยังใช้ Google chart API เป็นตัวอย่าง แต่โซลูชันนี้ไปไกลกว่า Google APIs อื่น ๆ และสามารถใช้ได้ทุกที่ที่คุณต้องรอให้สคริปต์โหลด
การใช้ google.load กับการโทรกลับไม่สามารถแก้ปัญหาได้เมื่อใช้ Greasemonkey เพื่อเพิ่มแผนภูมิ Google ในกระบวนการ (แทรก Greasemonkey ลงในหน้า) โหนดสคริปต์ www.google.com/jsapi จะถูกเพิ่ม หลังจากเพิ่มองค์ประกอบนี้สำหรับ jsapi javascript ของ Google สคริปต์ที่แทรก (หรือเพจ) พร้อมที่จะใช้คำสั่ง google.load (ซึ่งจำเป็นต้องโหลดในโหนดที่เพิ่ม) แต่สคริปต์ jsapi นี้ยังไม่โหลด การตั้งค่าการหมดเวลาใช้งานได้ แต่การหมดเวลาเป็นเพียงวิธีแก้ปัญหาสำหรับการแข่งขันเวลาในการโหลดสคริปต์ jsapi ของ Google ด้วยสคริปต์แทรก / เพจ การย้ายไปรอบ ๆ ที่สคริปต์เรียกใช้งาน google.load (และอาจเป็น google.setOnLoadCallback) อาจส่งผลต่อสถานการณ์การแข่งขันเวลา ต่อไปนี้เป็นโซลูชันที่รอให้องค์ประกอบสคริปต์ของ Google โหลดก่อนที่จะเรียกใช้ google.load นี่คือตัวอย่าง:
// ********* INJECTED SCRIPT *********//
// add element
var gscript = document.createElement('script');
gscript.setAttribute("type", "application/javascript");
gscript.setAttribute("id", "XX-GMPlusGoogle-XX");
document.body.appendChild(gscript);
// event listener setup
gscript.addEventListener("load",
function changeCB(params) {
gscript.removeEventListener("load", changeCB);
google.load("visualization", "1", {packages:["corechart"], "callback":
function drawChart() {
var data;
// set the durationChart data (not in example)
data = new google.visualization.arrayToDataTable(durationChart);
var options = {
title:"Chart Title",
legend: {position:"none"},
backgroundColor:"white",
colors:["white","Blue"],
width: window.innerWidth || document.body.clientWidth,
height: window.innerHeight || document.body.clientHeight,
vAxis: {title: "Durations", baselineColor: "black", textStyle:{fontSize:12}},
hAxis: {title: "Days Since First Instance"},
height: ((cnt > 5)? cnt * 50 : 300),
isStacked: true
}; // options
// put chart into your div element
var chart = new google.visualization.BarChart(document.getElementById('XX-ChartDiv-XX'));
chart.draw(data, options);
} // drawChart function
}); //packages within google.load & google load
} // callback changeCB
);
// can use SSL as "https://www.google.com/jsapi";
gscript.src = "http://www.google.com/jsapi";