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

标签 javascript objective-c ios ios5 uiwebview

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

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

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

亲切的问候

最佳答案

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

关于javascript - 如何将 HTML 字符串传递给 UIWebView 中的 javascript 函数,iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13848820/

相关文章:

ios - 如何桥接 Objective-C initWithError : method into Swift

javascript - JS : sequence of execution of functions

javascript - 在不同事件处理程序之间重用代码

javascript - jQuery/CSS - 将鼠标悬停在具有相同 href 的元素上时更改 css 类

objective-c - 生成启用 ARC 的 UUID 字符串

cocoa-touch - UIModalPresentationFormSheet 白角

javascript - HTML对象元素占用页面空间

iphone - 使用 objective-c 将文件从应用程序上传到服务器

ios - UIAlertView 保存 textfield.tex

ios - 如何在 Cocoas2D 中以自定义大小呈现 'UIViewController'