如何在iOS的UIWebView中将HTML字符串传递给javascript函数



如何将从目标C中的文件读取的HTML字符串标记传递给接受参数的javascript函数?

在我的webViewDidFinishLoad中,我试着像这样调用

NSString *jsfile = [[NSBundle mainBundle] pathForResource:@"setcontent" ofType:@"js"];
NSString *js = [NSString stringWithContentsOfFile:jsfile encoding:NSUTF8StringEncoding error:&errDes];
[webView stringByEvaluatingJavaScriptFromString:js];
[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"showHtml('%@');", filecontent]];

我的javascript文件加载了一个函数

function showHtml(param1)
{
alert(param1);
document.getElementById('section1').innerHTML = param1;
}

我用显式字符串值(如@"<p id="cid1"> test </p>")测试了这段代码,它通过设置元素内容来工作。如果我将其更改为@"<p id='cid1'> test </p>",即对id属性使用单引号,则它不起作用。为了使后者工作,我必须将目标C代码中的字符串格式化程序"%@"更改为"%@\"。

上面的问题并没有那么严重,但在读取包含多个html标记的资源文件的内容时,无论哪种方式都不起作用,这些html标记必须设置为div元素的#section1的innerHTML。

我需要以某种方式对内容进行编码吗?在调用stringByEvaluatingJavaScriptFromString方法之前?有人能告诉我,我做错了什么吗?如果有人知道更好的方法,请写信。

问候

这里有一个长度限制,当您将整个文件传递给js 时,似乎会遇到它

最新更新