1

안녕하세요 저는 여기에서하려고하는 모든 것을 매우 새로 습득했습니다. 가능한 한 자세하게 문제를 해결하려고 노력할 것입니다.google 시각화 테이블 allowHtml 옵션이 Google 사이트에서 작동하지 않습니다.

Google 사이트에서 google-apps-script를 사용하여 Google 시각화 테이블에서 html 렌더링을 시도하고 있습니다. 테스트 사례로서 Google 시각화 워드 프로세서에서이 정확한 예제를 가져 와서 내 페이지에서 시도했지만 html이 작동하지 않으면 텍스트로만 표시됩니다.

내 페이지에서

나는 호출 삽입 된 응용 프로그램 스크립트 가젯을 htmlService ... 그래서 같은

function doGet() { 
    return HtmlService.createHtmlOutputFromFile('testTable'); 
} 
나는이에 allowHtml을 설정 한 것을 제외하고 문서에서이 정확한 코드를 복사 한 I testTable.html에서

테이블 옵션에서 true로 설정하고 html이 제대로 렌더링되는지 테스트하기 위해 두 개의 테이블 항목 중 일부에 html 굵게 태그를 추가했습니다. 이와 같이 ..

<html> 
    <head> 
    <script type="text/javascript" src="https://www.google.com/jsapi"></script> 
    <script type="text/javascript"> 
     google.load("visualization", "1", {packages:["table"]}); 
     google.setOnLoadCallback(drawTable); 

     function drawTable() { 
     var data = new google.visualization.DataTable(); 
     data.addColumn('string', 'Name'); 
     data.addColumn('number', 'Salary'); 
     data.addColumn('boolean', 'Full Time Employee'); 
     data.addRows([ 
      ['<b>Mike</b>', {v: 10000, f: '$10,000'}, true], 
      ['<b>Jim</b>', {v:8000, f: '$8,000'}, false], 
      ['Alice', {v: 12500, f: '$12,500'}, true], 
      ['Bob', {v: 7000, f: '$7,000'}, true] 
     ]); 

     var table = new google.visualization.Table(document.getElementById('table_div')); 

     table.draw(data, {showRowNumber: true, allowHtml: true}); 
     } 
    </script> 
    </head> 
    <body> 
    <div id="table_div"></div> 
    </body> 
</html> 

JSFiddle에서이 동일한 예제를 수행했으며 굵은 html 태그를 올바르게 렌더링합니다. 내 Google 사이트에서 allowHtml을 작동시키기 위해 다르게해야 할 일이 있습니까? 에 StackOverflow에 여기이 게시물 밖으로

+0

해당 셀만 굵게 표시하거나 모든 셀을 굵게 표시 하시겠습니까? – rpm

+0

또는 ...반드시 대담한 것은 아니며 allowHtml 옵션을 사용하려고 노력하고 있으며 테스트 케이스로 굵은 태그를 사용하고 있습니다. 결국 셀 안의 html로 더 많은 것을하고 싶을 것입니다. – claybar

+0

이것은 jsfiddle에서 작동하는 것처럼 작동해야합니다. 그것은 저에게 버그 같습니다. [여기]로 신고 할 수 있습니다 (https://developers.google.com/apps-script/support#bugs). – rpm

답변

1

문제점을 해결 한 해결 방법을 발견했습니다. 페이지에 직접 삽입 된 google-apps 스크립트가있는 표를 표시하는 대신 내 Google 드라이브에 호스팅 된 .xml 파일에 내 코드를 넣은 다음 내 페이지에 가젯으로 삽입했습니다.

위의 표는 가젯 (.xml) 형식으로되어 있으며 Google 사이트 페이지에 HTML이 올바르게 표시됩니다.

<?xml version = "1.0" encoding="UTF-8" ?> 
<Module> 
    <ModulePrefs title = "Test Table"> 
    </ModulePrefs> 
    <Content type="html"> 
    <![CDATA[ 
     <div id="table_div"></div> 
     <script type="text/javascript" src="https://www.google.com/jsapi"></script> 
     <script type="text/javascript"> 
     google.load("visualization", "1", {packages:["table"]}); 
     google.setOnLoadCallback(drawTable); 

     function drawTable() { 
      var data = new google.visualization.DataTable(); 
      data.addColumn('string', 'Name'); 
      data.addColumn('number', 'Salary'); 
      data.addColumn('boolean', 'Full Time Employee'); 
      data.addRows([ 
      ['<b>Mike</b>', {v: 10000, f: '$10,000'}, true], 
      ['<b>Jim</b>', {v:8000, f: '$8,000'}, false], 
      ['Alice', {v: 12500, f: '$12,500'}, true], 
      ['Bob', {v: 7000, f: '$7,000'}, true] 
      ]); 

      var table = new google.visualization.Table(document.getElementById('table_div')); 

      table.draw(data, {showRowNumber: true, allowHtml: true}); 
     } 
    </script> 
    ]]> 
    </Content> 
</Module> 
0

확인 : 여기

google visualization not working with appscript html service

는 Google 사이트에 시각화 표를 추가하는 방법에 대한 설명서입니다.

Embed Visualizations on Google Sites

나는 애플리케이션 스크립트를 사용하지 않고 시각화 표를 추가하려고 할 것입니다.

Apps Script로 시각화 테이블을 추가하려고 할 때 Caja가 코드를 sanatizing하는 데 문제가 있다고 생각합니다. 설명서 예제의 코드를 사용하고 브라우저 콘솔에서 오류가 발생합니다.

몇 가지 변경 사항이 추가되어 내 사이트에 Apps Script가 추가되었으며이를 받았습니다.

HTML in Sites

이 당신이 원하는 무엇인가?

나는 정확한 HTML하지만 서로 다른 doGet() 기능을 사용 :

function doGet(){ 
    return HtmlService.createTemplateFromFile('testTable') 
    .evaluate() // evaluate MUST come before setting the NATIVE mode 
    .setSandboxMode(HtmlService.SandboxMode.NATIVE); 
}; 

내가 목록에서 애플리케이션 스크립트를 페이지를 편집 삽입 메뉴를 선택, 애플리케이션 스크립트를 선택하고, 선택하여 애플리케이션 스크립트를 추가하는 I 사이트에 첨부되어 생성되었습니다.

+0

확인해 주셔서 감사합니다. 실제로 내가 원하는 것은 ""태그를 (테이블의 Mike와 Jim)에 추가 한 이름이 실제로 테이블에 렌더링 된 html로 표시된다는 것입니다. 따라서이 경우 테이블에 태그를 표시하는 대신 "Mike"및 "Jim"이 굵게 인쇄됩니다. – claybar

+0

오 ... 그래, 이제 알 겠어. :) 좋아, 아마도 좀 더 살펴볼 것입니다. –