javascript - rails : Server side run HTML and Javascript

标签 javascript html ruby-on-rails

我有一个通过 Google 图表 API 创建图表的应用程序。 现在我想通过电子邮件或 Telegram Messenger 将图表的图像发送给用户。 这是在浏览器中显示图像图表并通过 AJAX 将该图像发送到 Controller 的操作的代码。 如何在服务器上运行这个 html 脚本?

<html>
<head>
</head>
<body>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
  <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
  <script type="text/javascript">
    google.charts.load("current", {packages:['corechart']});
    google.charts.setOnLoadCallback(drawChart);
    function drawChart() {

      data2 = [['Time', 'Temp'],[1456099200,7.4],[1456102800,7.7],[1456106400,8.6],[1456110000,8.6],[1456113600,9.4]]

      var data = google.visualization.arrayToDataTable(
        data2
      );

      var options = {
        title: "Darestan Monitoring",
        legend: 'none',
        hAxis: {
          ticks: [{v: 1456099200, f: '1'},{v: 1456102800, f: '2'},{v: 1456106400, f: '3'},{v: 1456110000,f: '4'},{v: 1456113600, f: '5'}]
        },
        annotations: {
          style: 'line'
        }
      };

      var chart_div = document.getElementById('chart_div');
      var chart = new google.visualization.LineChart(chart_div);
      // Wait for the chart to finish drawing before calling the getImageURI() method.
      google.visualization.events.addListener(chart, 'ready', function () {
        var image_tag = '<img src="' + chart.getImageURI() + '">';
        chart_div.innerHTML = image_tag;
        console.log(chart_div.innerHTML);
        $.ajax({
          url: '/generate_chart/image_data',
          type: 'POST',
          data: {"image_data_tag": chart.getImageURI()},
          dataType: 'json',
          beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))}
        });
      });
      chart.draw(data, options);
    }
  </script>

<div id='chart_div'></div>
</body>
</html>

最佳答案

wkhtml2image 正是您想要的。

我们在 ruby​​ 应用程序中使用了大量的 PDFkit + wkhtml2pdf。

我们的设置:

ActiveJob + SuckerPunch + PDFKit。 render_to_string 帮助创建 HTML 文件,然后通过 PDFKit 将其传递给 wkhtml2pdf。获取 PDF,用回形针将其保存到模型中。确保等待javascript(wkhtml2image/pdf选项)

这不是那么简单,但效果很好,

祝你好运

亚辛。

关于javascript - rails : Server side run HTML and Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36368984/

相关文章:

javascript - 将字符串从页面 URL 传递到 HTML <P> 标记

javascript - 在服务器端捕获所有 JavaScript 客户端错误

php - 如何从数据库中获取日期到html datepicker

ruby-on-rails - md5 或 urlsafe_base64 或其他用于创建 auth_token

javascript - 如何使用 firebase firestore 有效地将项目添加到集合中

javascript - JavaScript 中调整窗口大小时的 Hide() 和 show()

javascript - 通过选择的值获取选择元素

html - 两个 <p> 元素通过包装到右列中而意外 float

ruby-on-rails - 使用 Roo Gem 在 Rails 中解析 XLS 电子表格

ruby-on-rails - 如何创建条件路由