这是我的代码:
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
NSError *error;
NSURL *baseURL = [NSURL fileURLWithPath:path];
NSString *html = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
NSLog(@"%@", html);
[webview loadHTMLString:html baseURL:baseURL];
NSLog(@"error: %@", error);
}
以下是html的内容:
<html>
<head>
<script src="jquerymin.js"></script>
<script src="highcharts.js"></script>
<script src="exporting.js"></script>
</head>
<body>
<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
<script src="script.js"></script>
Test
<input type="button" id="button" />
</body>
</html>
的script.js:
$(function () {
var chart;
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false
},
title: {
text: 'Therapist productivity by Region'
},
tooltip: {
formatter: function() {
return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %';
}
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
color: '#000000',
connectorColor: '#000000',
formatter: function() {
return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %';
}
}
}
},
series: [{
type: 'pie',
name: 'Therapist Productivity',
data: [
['South Carolina', 45.0],
['Michigan', 26.8],
{
name: 'California',
y: 12.8,
sliced: true,
selected: true
},
['Florida', 8.5],
['New York', 6.2],
['Maine', 0.7]
]
}]
});
});
});
$('#button').click(function() {
$(chart.container).hide();
chart.series[0].remove();
$(chart.container).show();
});
当我运行我的代码时,HTML和“测试”按钮显示在屏幕上,但不显示正在加载的.js文件的内容。我这样做了吗?
答案 0 :(得分:0)
这应该是一个评论,但我没有足够的代表,所以你得到一个“答案”。
我不知道你是否意味着你不能在源中看到你的js代码,或者你看不到它应该做的结果。如果您的意思是前者:使用脚本标记调用script.js,则不会将您的代码嵌入到您的html中。如果是后者:您的js代码应该使用onload属性或ready侦听器调用。如果您提供了script.js,我可以提供更多帮助。
无论哪种方式,一个好的起点是验证您的HTML代码: http://validator.w3.org/
答案 1 :(得分:0)
尝试转义baseURL中的反斜杠和空格。 Joe D'Andrea得到了一个很好的答案on a similar (but not quite duplicate) question。总结一下:
NSString *resourcePath = [[[[NSBundle mainBundle] resourcePath]
stringByReplacingOccurrencesOfString:@"/" withString:@"//"]
stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
[webView loadHTMLString:markup baseURL:[NSURL URLWithString:
[NSString stringWithFormat:@"file:/%@//", resourcePath]]];
答案 2 :(得分:0)
问题是我从未将.js文件带到Build Phases下的Copy Bundle Resources。我移动了文件,它完美地运行了