DataCenterWidget.prototype = {
load: function () {
var div = $get(this.container); //this.container为div的ClientID
div.innerHTML = "Loading..。"; //加载的时候显示文本
//异步调用webservices
$.ajax({
type: "POST", //以post方式
contentType: "application/json;charset=utf-8",
url: "http://localhost:7516/DataCenterForPortalService.asmx/GetCompanyTotalByDay", //webservices的路径方法 格式:url/方法名
data: "{\"userhashcode\":\"" + this.userhashcode + "\",\"year\":" + this.year + ",\"month\":" + this.month + ",\"day\":" + this.day + "}",
// data:"{userhashcode:'222'}",
dataType: "json", //返回数据类型
success: function (result) { //调用成功执行的方法
drawChartbyGoogle(result);
},
error: function (error) { //调用失败执行的方法
div.innerHTML = "取数据错误,请联系开发人员."; //加载的时候显示文本
}
});
//画图
function drawChartbyGoogle(result) {
try {
var resultlist = result.d;
document.write("<script type='text/javascript' src='http://www.google.com/jsapi'></script> "); //这里加载完google的api后,div的属性就拒绝访问了。
google.load("visualization", "1", { packages: ["corechart"] });
var data = new google.visualization.DataTable();
data.addColumn('string', '公司名');
data.addColumn('number', '标本量');
data.addRows(4);
data.setValue(0, 0, '广州');
data.setValue(0, 1, 1000);
data.setValue(1, 0, '重庆');
data.setValue(1, 1, 1170);
data.setValue(2, 0, '上海');
data.setValue(2, 1, 660);
data.setValue(3, 0, '北京');
data.setValue(3, 1, 1030);
var chart = new google.visualization.ColumnChart(div);
chart.draw(data, { width: 400, height: 240, title: '各分公司标本量',
hAxis: { title: '公司', titleTextStyle: { color: 'red'} }
});
// google.setOnLoadCallback(function () {
// alert(123);
// });
//绘图
} catch(e) {
}
};
在加载完google的API后,div的属性就拒绝访问了...求解。
下面这篇文章提到:document.write()用在函数里会覆盖整个HTML文档
http://www.w3schools.com/JS/js_howto.asp
我试验确实如此,下面的页面中,点击按钮后,页面上只有日期, H1和按钮都不见了:
<html>
<script type="text/javascript">
function test(){
document.write("<p>"+ Date() +"</p>");
}
</script>
<body >
<h1>My First Web Page</h1>
<input type="button" value="Click me!" onclick="test()"/>
</body>
</html>
<html>
<script type="text/javascript">
function test() {
//document.write("<p>" + Date() + "</p>");
document.getElementById('test').innerHTML ="<p>"+ Date() +"</p>";
}
</script>
<body>
<h1>
My First Web Page
</h1>
<div id="test"></div>
<input type="button" value="Click me!" onclick="test()"/>
</body>
</html>