2013-12-20 5 views
0

Вот сценарий, который я использую для запроса google finance, он возвращает некоторые запасы с периодом в тикере, мне нужно заменить это тире для finviz.com , но почему-то это вызывает у меня много горя. Каждый другой тикер работает с зависанием, кроме одного MOG-A. Просто дает мне «пропавших без вести»; перед заявлением "без каких-либо подробностей.Период в javascript переменной throwing error Я не могу показаться squash

(function($) { 
$(document).ready(function(){ 

    $.getJSON('https://finance.google.com/finance/info?client=ig&q='+stocklist+'& callback=?',function(response){ 
for (var i = 0; i < response.length; i++) { 
    var stockInfo = response[i]; 
    if (stockInfo.c.indexOf("-") != -1) {var scolor = "red";} else {var scolor =  "green";} 
    var finvizt = stockInfo.t.replace('\.','\-'); 
    var stockString ='<div style="width:210px;position:relative;"  class="stockWrapper">'; 
    stockString +='<span class="stockPrice" style="margin-left:-10px"><a class="slink"  name="slink'+stockInfo.t+'" href="http://finviz.com /quote.ashx?t='+finvizt+'" onMouseOver="var   newimg'+stockInfo.t+'=img_create(\''+escape(stockInfo.t)+' \');slink=getElementById(\'slink'+stockInfo.t+'\');thelink=this;var arx=getPos(thelink);  var posx=arx[0]+90;var posy=arx[1]-75;var   x=document.getElementById(\'stock'+stockInfo.t+'\');x.style.position=\'absolute \';x.style.display=\'block\';x.style.left=posx+\'px\';x.style.top=posy+\'px\';"  onMouseOut="document.getElementById(\'stock'+stockInfo.t+'\').style.display=\'none\';"  target="external">'+stockInfo.t+'</a></span>'; 
    stockString +='<span class="stockPrice" style="position:absolute;right:120px"  title="'+stockInfo.ltt+'">'+stockInfo.l+' </span>'; 
    stockString +='<span class="stockChange" style="color:'+scolor+';position:absolute; right:75px">'+stockInfo.c+'</span>'; 
    stockString +='<span class="stockChange" style="color:'+scolor+';position:absolute; right:25px">'+stockInfo.cp+'%</span>'; 
    stockString +='</div>'; 
    $('.stockTick').prepend(stockString); 
    } 
    }); 

}); 
}) (jQuery); 

Тогда есть код я использую для изображения

function img_create(alt) { 
    if (!(document.getElementById('stock'+unescape(alt)))) 
    { 
    var img= document.createElement('img'); 
    img.src= 'http://finviz.com/chart.ashx?s=m&p=d&t='+unescape(alt).replace('.','-'); 
    img.id= 'stock'+unescape(alt); 
    img.cssText= 'display:none;position:absolute;'; 
    img.style.border= '1px solid #000'; 
    img.style.zIndex='99'; 
    document.body.appendChild(img); 
    return img; 
    } 
} 

Все побег, материал был экранирования в добавлен в качестве средства, чтобы попытаться исправить это, не повезло. Я понимаю, что код грязный, любая помощь приветствуется.

Пример страницы с тикерами портфолио слева, MOG.A (MOG-A в finviz) - это настоящая работа. http://mimictrading.com/viewtopic.php?f=5&t=298

ответ

0

Проблема заключается в инлайн Javascript в атрибуте onmouseover:

<a class="slink" 
    name="slinkMOG.A" 
    href="http://finviz.com/quote.ashx?t=MOG-A" 
    onmouseover="var newimgMOG.A=img_create('MOG.A');slink=getElementById('slinkMOG.A');thelink=this;var arx=getPos(thelink); var posx=arx[0]+90;var posy=arx[1]-75;var x=document.getElementById('stockMOG.A');x.style.position='absolute';x.style.display='block';x.style.left=posx+'px';x.style.top=posy+'px';" onmouseout="document.getElementById('stockMOG.A').style.display='none';" 
    target="external">MOG.A</a> 

Заявление var newimgMOG.A = img_create('MOG.A'); не действует, потому что вы не можете иметь в имени переменной в ..

Мне кажется, что имя переменной никогда не используется, поэтому вы можете изменить это только на img_create('MOG.A').

Это исходит от viewtopic.php, а не Javascript.

+0

спасибо, что исправил его. – user3097845