Tengo una consulta que no podría hacerla en ningún otro foro sin que me critiquen o me manden a cag**, por lo tanto me tomo el atrevimiento de preguntarles a ustedes a ver si me pueden dar una mano.
Desde ya, muchas gracias a todos por su tiempo.
Lo que pretendo hacer (que todavía estoy dudando si es posible), es cambiar un div de un script una vez cargado.
Para que se entienda bien:
- Tengo una página HTML, con un script externo (dejo el código más abajo).
- Una vez se carga el script, lógicamente se carga con el logo del propietario del script, cosa que me parece perfecto, pero para mis propósitos esto no me sirve.
- Lo que debería hacer es, esperar a que cargue el script, una vez cargó modificar el div que contiene el logo y eliminarlo.
El script que contiene el logo es el siguiente:
Código
<script type="text/javascript" src="https://d33t3vvu2t2yu5.cloudfront.net/tv.js"></script> <script type="text/javascript"> new TradingView.widget({ "width": 998, "height": 610, "symbol": "FX:SPX500", "interval": "D", "timezone": "exchange", "theme": "White", "toolbar_bg": "#f1f3f6", "allow_symbol_change": true, "hideideas": true });</script>
El código con el que pretendo modificar el div:
Código
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script> $(window).load(function() { var title = 'Esto debería remplazar">'; $('.wrapper').html(title); }); </script>
Pueden testearlo/verlo en http://jsbin.com/hulawaqa/1/edit?html,js,output
La pregunta del millón ¿Porque no funciona!? o ¿ Que estoy haciendo mal?
Como datos opcionales, la fuente HTML del script una vez cargado contiene el siguiente código que es el que se encarga de crear el logo dentro del gráfico.
Código
var createLogo = function() {}; if (urlParams.logo) { createLogo = function () { $('.onchart-custom-logo').remove(); var filename = (/\.png$/.test(urlParams.logo)) ? urlParams.logo : urlParams.logo + '.png' ; var $logo = $( '<a href="https://www.tradingview.com/" class="onchart-tv-logo" target="_blank">' + '<img src="/static/images/widget-logo/' + filename + '" class="custom-image">' + '</a>' ).appendTo('.chart-widget'); var $img = $logo.find('img'); var additionLogoParams = ['left','bottom','width','height']; for (var i = additionLogoParams.length - 1; i >= 0; i--) { var param = additionLogoParams[i]; var paramWithPrefix = 'logo_' + param; if (urlParams[paramWithPrefix]) { if (param === 'left' || param === 'bottom') { $logo.css(param, urlParams[paramWithPrefix]); } else { $img.css(param, urlParams[paramWithPrefix]); } } }; } } else { createLogo = function () { $('.onchart-tv-logo').remove(); var colorClass = urlParams.theme ? urlParams.theme.toLowerCase() : ''; // black, white, blue, grey var $logo = $('<div class="onchart-tv-logo wrapper ' + colorClass + '">'+ '<div class="wrapper">'+ '<a class="inner" href="https://www.tradingview.com/" target="_blank">'+ '<img class="solid" src="/static/images/logo-widget-copyright.png" alt="TradingView Logo">'+ '<img class="faded" src="/static/images/logo-widget-copyright-faded.png" alt="TradingView Logo">'+ '<span class="text">'+ 'charts by '+ '<span class="logo-highlighted">TradingView</span>'+ '</span>'+ '</a>'+ '</div>'+ '</div>') .on('mouseenter', function() { $(this).addClass('expanded') }) .on('mouseleave', function() { $(this).removeClass('expanded') }) .appendTo('.chart-widget'); ; function showAndHideLogo(data) { if (data.method == 'series_completed') { mainSeries.onDataLoaded().unsubscribe(this, showAndHideLogo); setTimeout(function() { $('.onchart-tv-logo').addClass('expanded'); }, 0.5 * 1000); setTimeout(function() { var $logo = $('.onchart-tv-logo'); if ($logo.is(':not(:hover)')) { $logo.removeClass('expanded'); } }, 20 * 1000); } } mainSeries.onDataLoaded().subscribe(this, showAndHideLogo); }; } chartWidget.withModel(null, createLogo); });
También aunque parezca est*pido intente guardar la página completa del gráfico base y modificar el script que crea el logo, funcionó aunque solo en localhost. Cuando lo subí al servidor, me da un error 502 de WebSocket (Creo que se debe a que no tengo la autorización para acceder a los datos del gráfico).
Alguna idea de como puedo modificarlo?
Nuevamente les agradezco por el tiempo que se tomaron en llegar hasta aca y si me pudieran dar una mano orientándome como resolver mi problema sin "juzgarme".
Un saludo!