在javascript变量抛出错误的时期我似乎无法压制

时间:2013-12-20 22:53:41

标签: javascript jquery replace escaping period

这是我用来查询谷歌财务的脚本,它带回了一些股票在股票代码中,我需要用短信代替finviz.com,但由于某种原因这引起了我很多的悲伤。除了那个MOG-A之外,其他每个自动收报机都在悬停。只是让我'失踪;在陈述'错误之前没有细节。

( 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;
    }
}

所有的逃脱,unescape的东西被添加为试图修复它没有运气的手段。我意识到代码很乱,任何帮助都会受到赞赏。

左侧有投资组合代码的示例页面,MOG.A(finviz中的MOG-A)是真正的工作。 http://mimictrading.com/viewtopic.php?f=5&t=298

1 个答案:

答案 0 :(得分:0)

问题在于onmouseover属性中的内联Javascript:

<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。