var str = "<!-- START Script Block for Chart Expense -->
<div id='ExpenseDiv' align='center'>
Chart.
</div>
<script type="text/javascript">
var chart_Expense = new FusionCharts("../FusionCharts/FCF_Doughnut2D.swf", "Expense", "500", "350", "0", "0");
chart_Expense.setDataXML("<graph caption='Expense' numberPrefix='' formatNumberScale='0' decimalPrecision='0'><set name='February' value='15.2' /><set name='April' value='716468.68' /><set name='May' value='541645.18' /><set name='June' value='681415.5' /><set name='July' value='575417.99' /><set name='August' value='436200.21' /><set name='September' value='159725' /><set name='November' value='0.53' /><set name='December' value='54.7' /></graph>");
chart_Expense.render("ExpenseDiv");
</script>
<!-- END Script Block for Chart Expense -->"
我想在JavaScript方面這是在JavaScript字符串變量exequte這個腳本,並在頁面控件的一個它的結果追加javascript變量。 這意味着這個字符串的腳本塊有功能「chart_Expense.setDataXML」和「chart_Expense.render」,我想在客戶端執行這個功能。
我現有的代碼如下
JavaScript端
function RebindChart() {
var ddlChartType2Value = document.getElementById("ctl00_ContentPlaceHolder1_ddlChartType2").value;
$.ajax({
type: "POST",
url: "DashBoardAccount.aspx/GetChatInfo",
contentType: 'application/json; charset=utf-8',
data: "{ charttype: '" + ddlChartType2Value + "' }",
dataType: 'json',
cache: false,
success: function (result) {
document.getElementById('ctl00_ContentPlaceHolder1_FCLiteral2').innerHTML = result.d;
}
});
}
服務器端
[System.Web.Services.WebMethod]
public static string GetChatInfo(string charttype)
{
return BindExpense(charttype); // this function return string which is describe in above
}
首先你必須使它成爲一個有效的字符串,除非第一個片段只是一個樣本。如果是這樣,擺脫'var foo =「' –
如果你有把它保存在一個單獨的js文件中的選項,你可以使用'$ .getScript()'這更容易維護,並節省自己的麻煩擔心在任何地方轉義單引號或雙引號 – Archer
將頁面中的大部分js代碼包含在正常情況下可能會更好,並讓WebMethod返回json包含呈現圖形所需的所有數據。 –