gpt4 book ai didi

javascript - IE8 中的 Google Chart 问题 - SCRIPT70 : Permission denied format+en, default+en,ui+en,corechart+en.I.js, line 86 character 16

转载 作者:行者123 更新时间:2023-11-30 05:35:55 29 4
gpt4 key购买 nike

我在 IE8 中使用 Google Charts 时无限出现以下错误

SCRIPT70: Permission denied format+en,default+en,ui+en,corechart+en.I.js, line 86 character 16

从我的父页面我有 drawChart() 和全局 chartDatas 数组变量,从这个页面我通过 ajax 调用调用子页面,在成功调用子页面后有图表的 chartDatas 数组输入我调用 drawChart() 函数来绘制图表使用新数组,当时在IE8以上的页面上鼠标悬停时不断出现错误。所以它在我的应用程序中引起了很多问题。这是在 IE8 中重现此问题的示例代码(在最新的浏览器中,如 chrome、firefox、IE10,它工作正常)

parentPage.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages: ["corechart"]});
google.setOnLoadCallback(drawChart);
var year = 2008;
var chartDatas = [
['Year', 'Sales', 'Expenses'],
['2004', 1000, 400],
['2005', 1170, 460],
['2006', 660, 1120],
['2007', 1030, 540]
];
function drawChart() {
var data = google.visualization.arrayToDataTable(chartDatas);

var options = {
title: 'Company Performance',
vAxis: {title: 'Year', titleTextStyle: {color: 'red'}}
};

var chart = new google.visualization.BarChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
function callChild() {
$.ajax({
url: "childJsp.jsp",
complete: function(res, textStatus) {
$('#childPage').html(res.responseText);
}
});
}
</script>
</head>
<body>
<div id="chart_div" style="width: 900px; height: 500px;"></div>
<br>
<input type="button" onclick="callChild();" value="call child page">
<div id="childPage"> </div>
</body>
</html>

childJsp.jsp

<script>       
chartDatas.push([''+(year++), 900, 400]);
drawChart();
</script>

enter image description here

通过ajax调用加载子页面后,控制台打印错误

enter image description here

最佳答案

我怀疑您需要稍微重新安排您的代码,以便重复使用相同的图表对象,而不是一遍又一遍地创建新的图表对象。

这可能有效:

将您的 javascript 更改为:

function drawChart() {
var data = google.visualization.arrayToDataTable(chartDatas);

var options = {
title: 'Company Performance',
vAxis: {title: 'Year', titleTextStyle: {color: 'red'}}
};

var chart = new google.visualization.BarChart(document.getElementById('chart_div'));
chart.draw(data, options);

function callChild() {
$.ajax({
url: "childJsp.jsp",
complete: function(res, textStatus) {
$('#childPage').html(res.responseText);
var data = google.visualization.arrayToDataTable(chartDatas);
chart.draw(data, options);
}
});
}

var button = document.querySelector('#callChild');
if (document.addEventListener) {
el.addEventListener('click', callChild);
}
else {
el.attachEvent('onclick', callChild);
}
}

在您的回复中,删除 callChild函数调用。在您的 HTML 中,将按钮更改为:

<input type="button" id="callChild" value="call child page">

(或使用不同的 ID,只需确保 javascript 中的 button 元素与 HTML 中的元素匹配)。

这可能存在时间问题,因此更好的解决方案是将 childData.jsp 页面的输出更改为格式为 ["<year>",<sales>,<expenses>] 的 JSON 字符串。 , 并更改 callChilddrawChart 中发挥作用对此:

function callChild() {
$.ajax({
url: "childJsp.jsp",
dataType: 'json',
complete: function(res, textStatus) {
data.addRow(res);
chart.draw(data, options);
}
});
}

关于javascript - IE8 中的 Google Chart 问题 - SCRIPT70 : Permission denied format+en, default+en,ui+en,corechart+en.I.js, line 86 character 16,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23847754/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com