1

如何传递从目标 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>"ie 对 id 属性使用单引号,则它不起作用。为了让后者工作,我必须在目标 C 代码中将字符串格式化程序 '%@' 更改为 \"%@\" 。

上面的问题不是那么严重,但是当读取包含多个 html 标记的资源文件的内容时,这两种方法都不起作用,这些标记必须设置为 #section1 到 div 元素的 innerHTML。

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

亲切的问候

4

1 回答 1

0

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

于 2012-12-12T22:56:48.383 回答