일부 웹 페이지에 Google 차트가 표시됩니다. 하지만 내 고객이 Google에 네트워크 액세스 권한을 부여 할 수는 없습니다. 클라이언트 컴퓨터는 Google 웹 서버 (Google에 액세스 할 수 있음)와 동일한 LAN에 있지만 모든 클라이언트가 LAN 외부에서 액세스 할 수 있다고 보장 할 수는 없습니다. .Google 시각화가로드되었는지 어떻게 알 수 있습니까?
Google Charts를 사용하여 데이터에 액세스 할 수있는 고객에게 데이터를 보여주고 싶지 않은 사용자에게 일반 HTML 테이블을 보여주고 싶습니다.
나는 false로 변수를 설정, 및 Google 시각화 API가로드 될 때 호출하는 방법에 true로 변경 시도 :var canAccessGoogleVisualizationVar = false;
google.load('visualization', '1', {packages: ['corechart'], callback: canAccessGoogleVisualization});
function canAccessGoogleVisualization()
{
canAccessGoogleVisualizationVar = true;
}
을하지만 작동하지 않습니다.
Google 시각화를 사용할 수 있는지 클라이언트 측에서 어떻게 알 수 있습니까?
업데이트 : 위의 코드는 다음 이유로 인해 코드가 작동하지 않았다 (나는 내가 생각했던대로 전에 게시되지 않은 어떤 의미가 아니었다) :
google.setOnLoadCallback(drawVisualization);
function drawVisualization()
{
// Check if Google Visualization is loaded
if (!canAccessGoogleVisualizationVar) {
alert('Can't access Google Visualization');
}
// The following code can be any of the samples from Google (see http://code.google.com/apis/ajax/playground/?type=visualization#pie_chart).
var data = new google.visualization.DataTable();
// Add columns and values to data
...
// Call new google.visualization.AnyChartBuilderFromTheAPI(<element>).draw(data);
}
나는 내 코드 didn를 눈치
canAccessGoogleVisualizationVar == true
인 경우
if
분기가 수행되지 않고
false
인 경우
function drawVisualization()
이 실행되지 않았기 때문에 작동하지 않습니다.
google.setOnLoadCallback(drawVisualization);
function drawVisualization()
{
// Any drawVisualization unchanged from the samples from Google (see http://code.google.com/apis/ajax/playground/?type=visualization#pie_chart).
}
// Check if Google Visualization is loaded at the end of this <script> </script>
if (!canAccessGoogleVisualizationVar) {
alert('Can't access Google Visualization');
}
</script>
을하지만 평가 if (!canAccessGoogleVisualizationVar)
이 방법 canAccessGoogleVisualization()
를 호출 google.load(?, ?, canAccessGoogleVisualization);
전에 라인을 실행하고 있기 때문에 지금은 작동하지 않습니다 :
그래서 함수 외부의 경우 테스트를했다.
어떻게 내가 후 canAccessGoogleVisualizationVar
의 값을 읽고 있어요 google.load(...);
에 대한 호출을 실행하려고하는 데 확신 할 수 있습니까?
더 많은 정보와 질문을 업데이트 시도 할 수 있습니다. –
무엇이 가치있는 일인지, gviz js와 css를 가져 와서이 내부 앱이있는 곳이면 어디서든 제공 할 수 있습니다. 차트의 대부분은 클라이언트 측에서 수행되므로이 방법으로 정상적으로 작동합니다. 평소와 같이 API를로드 할 때 나가는 네트워크 호출을 살펴보고 필요한 파일을 볼 수 있습니다. a) 코드가 축소되고 b) 수동으로 코드를 변경하지 않고 코드를 업데이트하지 않아도되지만 옵션 일 수 있습니다. :) – oli
@peter에게 감사드립니다. 코드를 수동으로 변경하지 않으면 코드가 업데이트되지 않는다는 사실은 더하기 (이 경우)입니다. –