为什么我的函数只能运行一次(执行document.write()作业)?

时间:2011-04-26 15:41:02

标签: javascript

在我的html文件中,我必须在文档的不同位置显示不同股票的图表。我写了一个javascript函数源(自动收报机)来显示“自动收报机”的图表。这是我的html文档的第一部分:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="CLP_style.css" rel="stylesheet" type="text/css">
<title>The XXXXXX Daily</title>
<script type="text/javascript">
function source(ticker)
{
                var d=new Date();
                var month=new Array(12);
                month[0]="01";
                month[1]="02";
                month[2]="03";
                month[3]="04";
                month[4]="05";
                month[5]="06";
                month[6]="07";
                month[7]="08";
                month[8]="09";
                month[9]="10";
                month[10]="11";
                month[11]="12";
                var startmonth;
                var startyear;
                var endmonth;
                endmonth=month[d.getMonth()];
                switch (endmonth) 
                    {
                    case "01":
                        startmonth="11";
                    case "02":
                        startmonth="12";
                    case "03":
                        startmonth="01";
                    case "04":
                        startmonth="02";
                    case "05":
                        startmonth="03";
                    case "06":
                        startmonth="04";
                    case "07":
                        startmonth="05";
                    case "08":
                        startmonth="06";
                    case "09":
                        startmonth="07";
                    case "10":
                        startmonth="08";
                    case "11":
                        startmonth="09";
                        startyear="2010";
                    case "12":
                        startmonth="10";
                        startyear="2010";
                    }
                var dateparam;
                dateparam=startyear+"-"+startmonth+"-"+d.getDate()+"&e="+d.getFullYear()+"-"+endmonth+"-"+d.getDate();
                var chartsource;
                chartsource="<img src=\"http://xxxxxx.com/chartsymbol_chart.php?s="+dateparam+"&m=line&dateby=1&bollinger=1&bollinger_day=20&sma=1&sma_day=20&chartsize=1&id="+ticker+"\"";
                source=chartsource+" align=\"top\" name=\"HSX\" height=\"250\" width=\"490\">";
                document.write(source);
}
            </script>
</head>

<body>

当我调用该函数时,它的效果非常好。

<table width="980" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td>
            <script type="text/javascript"> 
                source("^vnindex");
            </script>
        </td>
        <td>
            <script type="text/javascript"> 
                source("^hastc");
            </script>
        </td>
  </tr>
</table>

但只是第一次,即^ vnindex图表出现,但^ hastc没有。起初,我认为这是因为没有^ hastc股票。但是当我用一个简单的html img标签检查时,^ hastc确实出现了。对于文档的其余部分,根本没有图表显示。这意味着该功能只能工作一次。

我不知道如何修复它,如果你可以帮助我,我会非常感激。

由于 Toan Nguyen

1 个答案:

答案 0 :(得分:0)

请记住,document.write仅在文档加载时附加到文档,否则它将尝试用您指定的任何内容覆盖页面内容! 尝试insteand DOM方法:document.appendChild(createElement(“img”))....