Inject html into UIWebVeiw
Inject html into UIWebVeiw
我有一个UIWebView,我试图注入一些html代码。我有一个首先加载的模板文件,然后我想通过它们的ID来改变元素的内容。
以下是我的代码,在webViewDidFinishLoad:
:
NSString *injectDetails = [NSString stringWithFormat:
@"document.getElementById('details').innerHTML = '"%@'";", searchResult.details];
[webView stringByEvaluatingJavaScriptFromString:injectDetails];
我试过通过转义引号,这也不起作用:
NSString *injectDetails = [NSString stringWithFormat:
@"document.getElementById('details').innerHTML = '"%@'";", [searchResult.details stringByReplacingOccurrencesOfString:@"'"" withString:@"'''""]];
[webView stringByEvaluatingJavaScriptFromString:injectDetails];
我可以注入纯文本,它可以工作。不能工作的html是一个很长的字符串,我最初只是使用[webView loadHTMLString:aDescription baseURL:NULL];
加载,工作得很好。
我需要做什么使这个工作与html?
我只是有同样的问题,当试图添加样式文档的头部。所以我只是用''"(在脚本中看起来像'")来逃避所有双配额。参见下面的代码:
NSString *js = @" <style type='''"text/css'''"> * { -webkit-touch-callout: none; -webkit-user-select: none; } </style> ";
[_webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.head.innerHTML = document.head.innerHTML+'"%@'"",js]];
试试下面这行代码。
NSString *imagePath = [[NSBundle mainBundle] resourcePath];
imagePath = [imagePath stringByReplacingOccurrencesOfString:@"/" withString:@"//"];
imagePath = [imagePath stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
NSString *HTMLData = @"Hello this is a test<img src="sample.jpg" alt="" width="100" height="100" />";
[webView loadHTMLString:HTMLData baseURL:[NSURL URLWithString: [NSString stringWithFormat:@"file:/%@//",imagePath]]];
1号线这将获得主bundle根文件夹的路径。
第2行我们需要双斜杠在UIWebView中正确工作,所以我们正在搜索"/"的所有实例,并将其替换为"//"
第3行与上面的处理相同,但我们正在搜索一个空格并将其替换为相当于%20
的HTML。4号线这是把一些样本数据放在一起为我们的UIWebView,你会看到我们已经设置了图像源为我们的"sample.jpg"文件,因为它位于根文件夹中,如果它在一个名为"images"的文件夹中,我们需要将源设置为"images//sample.jpg"。记住那两刀!
第5行这与我在教程中的例子非常相似,尽管我们将baseURL设置为应用程序包的根目录,但这允许我们相对地引用所有内容,而不是绝对路径。
使用上面的代码你可以这样做…
相关文章:
- Javascript inject CSS into Swift WebView
- NodeJS中的MySQL不适用于INSERT INTO中的多个语句
- Injecting JQuery into Android Webview
- MD5.ComputeHash(Encoding.Unicode.GetBytes(value)) into javas
- Inject javascript into WebChromeClient
- Embede IPythonNotebook into iframe
- mongodb import xml into mongodb
- ExtJs Grid into a BufferedGrid
- Javascript into PHP foreach loop
- Inject Javascript into DOM
- "$75.00" into "75.00" JQuery or Javascri
- javascript var into onClick in html
- 我们可以使用Jquery或Javascript从/Into.js文件中读取/写入Json数据吗
- JavaScript into jQuery Convert
- PHP Mysql Insert Into不起作用,没有错误,没有数据发布到数据库,早些时候同一页面也起作用
- Javascript injected into URL
- 选择INTO数组或对象
- javascript传递into对象方法
- Inject Angular into Rails
- Inject html into UIWebVeiw