2012-05-28 74 views
0

我試圖使其顯示雅虎圖的嵌入式代碼CRIPT添加變量在嵌入式代碼與下拉列表

嵌入式腳本是

<embed bgcolor="#dbdbd3" flashvars="lcId=1169793726234&amp;state=symbol%3D^nsebank;range=1d;indicator=ema(13,34,55)+macd+rsi+stochasticfast;charttype=candlestick;crosshair=on;ohlcvalues=0;logscale=on;source=undefined" loop="false" menu="false" name="BANKNIFTY" pluginspage="http://www.macromedia.com/go/getflashplayer" src="http://us.js2.yimg.com/us.yimg.com/i/us/fi/yfc/swf/flashchart_1.18.swf" style="height: 775px; width: 550px" type="application/x-shockwave-flash" wmode="opaque"></embed> 

在此腳本我想狀態的值=符號=^nsebank(^ nsebank)被從下拉菜單列表採取,然後當點擊計算按鈕它顯示嵌入式代碼

我所編寫的代碼如下: -

<div id="looknorth"></div> 
<script type="text/javascript"> 
function ln(){ 
D11=parseFloat(D1.value); 
document.getElementById('looknorth').innerHTML='<embed bgcolor="#dbdbd3" flashvars="lcId=1169793726234&amp;state=symbol%3D"+D11+";range=1d;indicator=ema(13,34,55)+macd+rsi+stochasticfast;charttype=candlestick;crosshair=on;ohlcvalues=0;logscale=on;source=undefined" loop="false" menu="false" name="BANKNIFTY" pluginspage="http://www.macromedia.com/go/getflashplayer" src="http://us.js2.yimg.com/us.yimg.com/i/us/fi/yfc/swf/flashchart_1.18.swf" style="height: 775px; width: 550px" type="application/x-shockwave-flash" wmode="opaque"></embed>';} </script> 
<table border=1 cellpadding=2 cellspacing=1 width="400"> 
<tr> 
<td style="background-color:#123742; font-size:12 ; font-weight:bold"> 
<font color="#FFFFFF">Compounding</font> 
<td>&nbsp;<br /> 
<select name="D1"> 
<option value="^nsei">Annually</option> 
<option value="^bsen">Half Yearly</option> 
</select> 
<tr> 
<td colspan="2" ALIGN="center"> 
<input type=button style="background-color:#123742; color:#FFFFFF; font-weight:bold; font-size:15" name=calculate value=Calculate onClick=ln();> 
</table> 

該腳本無法正常工作,請幫助我解決該錯誤。

回答

0

tfw.debugger:

  1. @parseFloat(D1)-string(選項值)不提供可解析的數目。結果嵌入標記的結果是「NaN」,而不是提供的選項值;第二個選項提供的價值對我來說並不起作用,第一個選擇了,所以我會檢查你在那裏發送的內容。
  2. 我注意到您的字符串中有一個'%3D'實體,其中unescapes等於一個等號。檢查你發送的變量的語法。例如state=symbol%3D'+D11+';range=1d;…就是你所擁有的。
    • 這將轉化爲state=symbol=^nsei;…這看起來很不對。你可能想檢查這些變量。
  3. 錯誤字符串「innerHTML的」 @」 - 在你的字符串中插入D1

使用網絡瀏覽器的執行console.log(串)控制檯/調試功能來測試你的對象和變量。有疑問時(F12調出在大多數瀏覽器控制檯的/ dev-工具)


<div id="looknorth"></div> 
<script language='javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'></script> 
<script type="text/javascript"> 
function ln(){ 
//var D11=String($('select[name=D1]').val()); 
var D11=String(D1.value), 
    text = '<embed bgcolor="#dbdbd3" flashvars="lcId=1169793726234&amp;state=symbol%3D'+D11+';range=1d;indicator=ema(13,34,55)+macd+rsi+stochasticfast;charttype=candlestick;crosshair=on;ohlcvalues=0;logscale=on;source=undefined" loop="false" menu="false" name="BANKNIFTY" pluginspage="http://www.macromedia.com/go/getflashplayer" src="http://us.js2.yimg.com/us.yimg.com/i/us/fi/yfc/swf/flashchart_1.18.swf" style="height: 775px; width: 550px" type="application/x-shockwave-flash" wmode="opaque"></embed>'; 
//try { console.log(D11); } catch(err) { window.alert(String(D11)); } 
//$('div#looknorth').html(text); 
document.getElementById('looknorth').innerHTML=text; 
} 
</script> 
<table border=1 cellpadding=2 cellspacing=1 width="400"> 
<tr> 
<td style="background-color:#123742; font-size:12 ; font-weight:bold"> 
<font color="#FFFFFF">Compounding</font> 
<td>&nbsp;<br /> 
<select name="D1" id="D1"> 
<option value="^nsei">Annually</option> 
<option value="^bsen">Half Yearly</option> 
</select> 
<tr> 
<td colspan="2" ALIGN="center"> 
<input type=button style="background-color:#123742; color:#FFFFFF; font-weight:bold; font-size:15" name=calculate value=Calculate onClick=ln();> 
</table> 

;)

+0

我應該添加這些行代碼... // try {console.log(D11); } catch(err){window.alert(String(D11)); } //$('div#looknorth').html(text); – user1417852

+0

try塊用於調試。我習慣了jquery,所以我留在我的測試中 - 評論它的用處。 – tfw

+0

任何一個可以糾正代碼,並幫助我..因爲我完全困惑 – user1417852

0
<div id="looknorth"></div> 
<script type="text/javascript"> 
function ln(){ 
    D1 = document.getElementsByName("D1")[0] 
    D11=parseFloat(D1.value); 
    document.getElementById('looknorth').innerHTML='<embed bgcolor="#dbdbd3" flashvars="lcId=1169793726234&amp;state=symbol%3D'+D11+';range=1d;indicator=ema(13,34,55)+macd+rsi+stochasticfast;charttype=candlestick;crosshair=on;ohlcvalues=0;logscale=on;source=undefined" loop="false" menu="false" name="BANKNIFTY" pluginspage="http://www.macromedia.com/go/getflashplayer" src="http://us.js2.yimg.com/us.yimg.com/i/us/fi/yfc/swf/flashchart_1.18.swf" style="height: 775px; width: 550px" type="application/x-shockwave-flash" wmode="opaque"></embed>'; 
} 
</script> 
<table border=1 cellpadding=2 cellspacing=1 width="400"> 
<tr> 
<td style="background-color:#123742; font-size:12 ; font-weight:bold"> 
<font color="#FFFFFF">Compounding</font> 
<td>&nbsp;<br /> 
<select name="D1"> 
<option value="^nsei">Annually</option> 
<option value="^bsen">Half Yearly</option> 
</select> 
<tr> 
<td colspan="2" ALIGN="center"> 
<input type=button style="background-color:#123742; color:#FFFFFF; font-weight:bold; font-size:15" name="calculate" value="Calculate" onClick='ln()'> 

你有各地的innerHTML線不匹配的一些報價。同樣,你從來沒有定義過什麼D1在你的JavaScript,所以當你問D1.value時,它不知道你想要什麼。

+0

仍然給一個誤差對象犯規支持一些誤差似乎是這裏此屬性或方法 – user1417852

+0

- D1 = document.getElementsByName( 「D1」)[0] – user1417852

+0

適用於Chrome和Firefox(我無法訪問IE)。你有沒有嘗試添加一個ID到D1選擇並使用它?像D1 = document.getElementById(「D1」);並且選擇是