You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调用TradingView Widget的save_image函数保存图表?

如何通过代码保存TradingView Widget图表

你遇到的问题是因为save_image是TradingView Widget的内部方法,并未暴露给公开的widget实例,所以直接调用widget.save_image()会触发类型错误。以下是两种可行的解决方案:

方案一:模拟点击内置保存按钮

TradingView Widget自带的保存按钮可通过DOM选择器定位,待图表加载完成后触发点击事件即可实现保存:

const widget = window.tvWidget = new TradingView.widget({
  "autosize": true,
  "symbol": "NASDAQ:AAPL",
  "interval": "D",
  "timezone": "Etc/UTC",
  "theme": "dark",
  "style": "1",
  "locale": "en",
  "enable_publishing": false,
  "allow_symbol_change": true,
  "save_image": true,
  "studies": [
    "STD;RSI"
  ],
  "container_id": "tradingview_009af"
});

// 使用Widget自带的onReady回调,比message事件更可靠
widget.onReady(function() {
  console.log("图表已加载完成");
  // 定位保存按钮(选择器可能随TradingView版本调整,需验证)
  const saveButton = document.querySelector('.tv-button.tv-button--secondary[data-name="save-image"]');
  if (saveButton) {
    saveButton.click();
  } else {
    console.error("未找到保存按钮,请检查DOM选择器");
  }
});

方案二:调用内部chart实例的save_image方法

通过Widget实例的内部属性获取chart对象,直接调用其save_image方法(注意:内部属性可能随版本更新变化,兼容性需自行验证):

const widget = window.tvWidget = new TradingView.widget({
  "autosize": true,
  "symbol": "NASDAQ:AAPL",
  "interval": "D",
  "timezone": "Etc/UTC",
  "theme": "dark",
  "style": "1",
  "locale": "en",
  "enable_publishing": false,
  "allow_symbol_change": true,
  "save_image": true,
  "studies": [
    "STD;RSI"
  ],
  "container_id": "tradingview_009af"
});

widget.onReady(function() {
  console.log("图表已加载完成");
  // 获取内部chart实例(不同版本可能是widget._chart或widget.chart)
  const chart = widget._chart || widget.chart;
  if (chart && chart.save_image) {
    chart.save_image();
  } else {
    console.error("无法获取chart实例或save_image方法");
  }
});

注意事项

  • 确保初始化配置中设置了"save_image": true,否则保存功能会被禁用
  • DOM选择器可能随TradingView的UI更新而失效,若方案一失效,需重新检查按钮的类名或属性
  • 内部属性(如_chart)不属于公开API,TradingView可能在后续版本中修改,生产环境使用需谨慎

内容的提问来源于stack exchange,提问作者JayK23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 09:20:38