Динамическая подгрузка виджета
Добрый день, часы гугления не дали результата, проблема в следующем:
есть виджет, рисующий красивые графики: <script type="text/javascript" src="https://s3.amazonaws.com/tradingview/tv.js"></script> <script type="text/javascript"> new TradingView.widget({ "width": 980, "height": 610, "symbol": "NASDAQ:AAPL", "interval": "D", "timezone": "Etc/UTC", "theme": "White", "style": "1", "locale": "ru", "toolbar_bg": "#f1f3f6", "enable_publishing": false, "hide_top_toolbar": true, "save_image": false, "hideideas": true }); </script> Кидаю код на отдельную страницу, все работает. Но надо сделать что-то вроде списка параметров "symbol" (из списка параметров виджета), по клику на которые график бы перерисовывался(виджет обновлялся с новыми параметрами). Использовал ajax, сам скрипт вызова виджета в страницу загружается, но, видимо, не исполняется - графика нет. Кидал код вызова на другую страницу, вызывал ее из кода основной страницы - также не помогло. Я не специалист, подскажите, хотя бы в какую сторону копать. P.S. Нашел решение, может кому пригодится. Документации к виджету нет, если указать список инструментов, то список будет на виджете, необходимо было сделать табличку с инструментами, а внизу область с графиком, которая будет обновляться по щелчку на инструмент. Решил через iframe. Добавляем код вызова виджета на страничку, обновляем страничку, идем в код страницы, оттуда вытаскиваем ПРЯМУЮ ссылку на график, обернутую в iframe. Эту ссылку и можно использовать при обновлении содержимого Iframe, например так: function ifrUpdt() { iframe = document.getElementById('ifr'); iframe.src = "https://dwq4do82y8xi7.cloudfront.net/widgetembed/?symbol=NASDAQ%3AGOOG&interval=D&symboledi t=1&toolbarbg=f1f3f6&studies=&hideidea s=1&theme=White&style=1&timezone=Etc%2 FUTC&showpopupbutton=1&studies_overrides=% 7B%7D&overrides=%7B%7D&enabled_features=%5 B%5D&disabled_features=%5B%5D&showpopupbut ton=1&locale=en&utmsource=ankyr.net&ut mmedium=ankyr.net/personal/dev/page1.html"; document.getElementById('ifr').contentWindow.locat ion.reload(true); } |
Скрипт уже загружен файлом, а тебе надо придумать имя для объекта, вот так например начать:
var TrV= new TradingView.widget({ потом покурить ману на этот скрипт и найти методы обновления или хотя бы удаления следов его деятельности и применить полученные знания к объекту TrV или какой придумаешь. |
А чего ты мозк компостируешь? Там все уже есть готовое. Сколько "символов" в массиве нарисуешь - столько тебе видгет нарисует вкладок сверху. Переключаешь вкладки и все само загружается эс експектед.
|
Часовой пояс GMT +3, время: 07:15. |