首页 新闻 会员 周边 捐助

在jquery的ajax方法执行成功里面调用google的画图方法在div里画图,出现div拒绝访问的问题

1
悬赏园豆:50 [已关闭问题] 关闭于 2011-09-28 09:21

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的属性就拒绝访问了...求解。

rabbi88的主页 rabbi88 | 初学一级 | 园豆:4
提问于:2011-09-22 16:53
< >
分享
所有回答(2)
0

下面这篇文章提到: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>
bye_passer | 园豆:367 (菜鸟二级) | 2011-09-26 09:04
0

 

<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>

用动态追加DOM模式
e

 

rhwelkin | 园豆:202 (菜鸟二级) | 2012-03-23 15:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册