0

这是我的代码:

- (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>

脚本.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 文件的内容。我这样做对吗?

4

3 回答 3

0

这可能应该是一个评论,但我没有足够的代表,所以你得到一个“答案”。

我不知道你的意思是你在源代码中看不到你的 js 代码,还是看不到它应该做的结果。如果您的意思是前者:使用 script 标签调用 script.js,不会将您的代码内联嵌入到您的 html 中。如果是后者:您的 js 代码应该使用 onload 属性或就绪侦听器调用。如果您提供您的 script.js,我可以提供更多帮助。

无论哪种方式,一个好的起点是验证您的 html 代码:http: //validator.w3.org/

于 2012-07-31T20:09:22.370 回答
0

尝试转义 baseURL 中的反斜杠和空格。Joe D'Andrea对类似(但不完全重复)的问题有一个很好的答案。总结一下:

 NSString *resourcePath = [[[[NSBundle mainBundle] resourcePath]
     stringByReplacingOccurrencesOfString:@"/" withString:@"//"]
     stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
 [webView loadHTMLString:markup baseURL:[NSURL URLWithString:
     [NSString stringWithFormat:@"file:/%@//", resourcePath]]];
于 2012-08-01T01:32:33.823 回答
0

问题是我从未将 .js 文件带到 Build Phases 下的 Copy Bundle Resources。我把文件移过来了,效果很好

于 2012-08-02T17:00:55.310 回答