2013-12-20 3 views
0

여기 Google 금융을 쿼리하는 데 사용하는 스크립트가 있습니다.이 스크립트는 기간이 표시된 주식을 다시 가져옵니다. 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; 
    } 
} 

모든 탈출을 위해 사용하는 코드있어, 언 이스케이프 물건은 행운과 그것을 해결하기 위해 시도하는 수단으로 추가되었다. 나는 코드가 지저분하다는 것을 깨닫고, 어떤 도움을 주셔서 감사합니다.

왼쪽에 포트폴리오 티커가있는 예제 페이지는 MOG.A (finviz의 MOG-A)가 실제 작업입니다. http://mimictrading.com/viewtopic.php?f=5&t=298

답변

0

문제는 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에서 발생합니다.

+0

고맙습니다. 고쳐 주셨습니다. – user3097845

관련 문제