【问题标题】:Period in javascript variable throwing error I can't seem to squashjavascript变量抛出错误的期间我似乎无法挤压
【发布时间】:2013-12-20 22:53:40
【问题描述】:

这是我用来查询 google 财务的脚本,它带回了一些股票代码中带有句点的股票,我需要用 finviz.com 的破折号替换它,但由于某种原因,这让我很伤心.除了那个 MOG-A 之外,其他所有代码都可以悬停。只是让我'失踪; before 语句的错误,没有详细信息。

( 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(finviz 中的 MOG-A)是真正的作品。 http://mimictrading.com/viewtopic.php?f=5&t=298

【问题讨论】:

    标签: javascript jquery replace escaping period


    【解决方案1】:

    问题出在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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多