您好 在我的脚本中,我试图通过ajax调用页面,然后在dom中插入该页面的内容。目标页面包含以下代码:
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script>
<script src="js/highcharts.js" type="text/javascript"></script>
<script type="text/javascript">
var chart1; // globally available
$(document).ready(function() {
chart1 = new Highcharts.Chart({
chart: {
renderTo: 'chart-container-1',
defaultSeriesType: 'bar'
},
title: {
text: 'Fruit Consumption'
},
xAxis: {
categories: ['Apples', 'Bananas', 'Oranges']
},
yAxis: {
title: {
text: 'Fruit eaten'
}
},
series: [{
name: 'Jane',
data: [1, 0, 4]
}, {
name: 'John',
data: [5, 7, 3]
}]
});
});
</script>
</head>
<div id="chart-container-1" style="width: 100%; height: 400px"></div>
来自highcharts脚本。当我进行ajax调用时,我得到一个空div。尽管如此,当我在没有ajax调用的情况下运行页面时,它运行得很好。
编辑: 我请求的页面包含jquery脚本,但是我没有使用jquery脚本来调用它。我正在使用这些功能:
function callAHAH(url, pageElement, callMessage, errorMessage) {
document.getElementById(pageElement).innerHTML = callMessage;
try {
req = new XMLHttpRequest(); /* e.g. Firefox */
} catch(e) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP"); /* some versions IE */
} catch (e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP"); /* some versions IE */
} catch (E) {
req = false;
}
}
}
req.onreadystatechange = function() {responseAHAH(pageElement, callMessage, errorMessage);};
req.open("GET",url,true);
req.send(null);
}
function responseAHAH(pageElement, callMessage, errorMessage) {
var output = '';
if(req.readyState == 4) {
if(req.status == 200) {
output = req.responseText;
document.getElementById(pageElement).innerHTML = output;
} else {
document.getElementById(pageElement).innerHTML = errorMessage+"\n"+output;
}
}
}
答案 0 :(得分:2)
除非您已将数据类型选项设置为“html”,否则jQuery AJAX会将响应中的脚本标记调出来。
确保已将数据类型设置为html。
$.ajax({url:"/sompage.html",datatype:"html",type:"GET"});
请参阅文档here
答案 1 :(得分:0)
如果您使用更新面板
Sys.Application.add_load(your_function);