日期:2014-05-17  浏览次数:20738 次

(求助)关于动态生成script代码的问题
我需要在下面一个jsp代码的select下拉框中添加一个onchang()方法,希望随着下拉框选中值的不同,动态的改变<body>标签中的script代码。注意,不单单是把script放到那个位置就行了,script代码必须生效,能够完成自己的功能。
代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script language="JavaScript" src="/zznuCount/script/FusionCharts.js"></script>
<style>
#yidong{
left:1100px; 
top:0px;
position:relative;
}
</style>
<script>
function change(){

}  
</script>
</head>
<body bgcolor="#ffffff" id="body1">
<div>
<span></span>
</div>
<c:if test="${empty map.dataChar}"> 
请点击右上角个性配置  
</c:if>
<c:if test="${!empty map.dataChar}">
<div id="yidong">
<select name="fangshi" id="id1" onchange="change()"><!-- 需要根据下拉框选中的值,来动态的更新body标签中的script代码-->
<option selected value="0">柱状图</option>
<option value="折线图">折线图</option>
<option value="面积图">面积图</option>
<option value="表格">表格</option>
</select>
</div>
<input id="dc<c:out value="${map.id}"/>" type="hidden" value="<c:out value="${map.dataChar}"/>"/>
<div id="chartdiv<c:out value="${map.id}"/>" align="center"></div>
<script>-------body标签中的script代码,用来控制图形的输出
  var dataChart=document.getElementById('dc<c:out value='${map.id}'/>').value;
var myChart = new FusionCharts('/zznuCount/script/ScrollColumn2D.swf', 'myChartId', '80%', '500');
myChart.setDataXML(dataChart);
myChart.addParam('wmode','transparent');
myChart.render('chartdiv<c:out value='${map.id}'/>');
</script>
</c:if>
 </body>
 </html>

纠结老长时间了,就是不会弄。愁死了。

------解决方案--------------------
请看下这个例子。 动态改脚本没必要。

http://www.fusioncharts.com/demos/features/view/DynamicChangeChart.html