Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Динамическая подгрузка виджета (https://javascript.ru/forum/dom-window/64488-dinamicheskaya-podgruzka-vidzheta.html)

AlexanderK 15.08.2016 14:32

Динамическая подгрузка виджета
 
Добрый день, часы гугления не дали результата, проблема в следующем:

есть виджет, рисующий красивые графики:

<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&amp;interval=D&amp;symboledi t=1&amp;toolbarbg=f1f3f6&amp;studies=&amp;hideidea s=1&amp;theme=White&amp;style=1&amp;timezone=Etc%2 FUTC&amp;showpopupbutton=1&amp;studies_overrides=% 7B%7D&amp;overrides=%7B%7D&amp;enabled_features=%5 B%5D&amp;disabled_features=%5B%5D&amp;showpopupbut ton=1&amp;locale=en&amp;utmsource=ankyr.net&amp;ut mmedium=ankyr.net/personal/dev/page1.html";
document.getElementById('ifr').contentWindow.locat ion.reload(true);
}

warren buffet 15.08.2016 15:35

Скрипт уже загружен файлом, а тебе надо придумать имя для объекта, вот так например начать:

var TrV= new TradingView.widget({

потом покурить ману на этот скрипт и найти методы обновления или хотя бы удаления следов его деятельности и применить полученные знания к объекту TrV или какой придумаешь.

warren buffet 15.08.2016 15:46

А чего ты мозк компостируешь? Там все уже есть готовое. Сколько "символов" в массиве нарисуешь - столько тебе видгет нарисует вкладок сверху. Переключаешь вкладки и все само загружается эс експектед.


Часовой пояс GMT +3, время: 18:28.