iOS实现 webView loadHTMLString加载外部css、js样式
记录一下。
webview(或wk)用 loadHTMLString加载内容时 ,如果只是单纯的html内容,样式等都写在内部,直接设置baseURL为nil即可。
不过当html里包含外部样式或调用外部js文件时,就需要通过baseurl设置一下路径。
[_webView loadHTMLString:html baseURL:myUrl];
举个最简单例子:
<html> <head>
<link rel="stylesheet" href="testwai.css">
</head> <body> i'm content!
</body> </html>
这里的html内部,有一个外部css引用,假设这个css文件在项目里
我们可以实现:
-(void) loadBundle{
NSMutableString *html = [NSMutableString string];
[html appendString:@"<html><head>"];
[html appendFormat:@"<link rel=\"stylesheet\" href=\"testwai.css\"></head>"];
[html appendString:@"<body><p>qfdkjeakofjadfdsjf</p></body></html>"]; NSURL *myUrl = [NSURL fileURLWithPath:[NSBundle mainBundle].bundlePath];
[_webView loadHTMLString:html baseURL:myUrl]; }
这里,重点在于这个baseURL参数,由于在项目里,所以路径用 [NSBundle mainBundle].bundlePath 获取即可。
同理如果是沙盒路径:
-(void) loadLocal{
NSMutableString *html = [NSMutableString string];
[html appendString:@"<html><head>"];
[html appendFormat:@"<link rel=\"stylesheet\" href=\"testwai.css\"></head>"];
[html appendString:@"<body><p>qfdkjeakofjadfdsjf</p></body></html>"]; NSString *cssUrl = [NSString stringWithFormat:@"%@",NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)];
NSURL *myUrl = [NSURL fileURLWithPath:cssUrl];
[_webView loadHTMLString:html baseURL:myUrl]; }
测试项目里,点击下图这个即可。
iOS实现 webView loadHTMLString加载外部css、js样式的更多相关文章
- django2.0无法加载外部css和js的问题
解决问题的思路来源于https://www.v2ex.com/t/430192 先是创建static目录,该目录与manage.py同级 然后在项目settings.py文件里添加 STATICFIL ...
- ie11 突然不能加载外部css 很神奇 头部改为 <!DOCTYPE> <html>
<!DOCTYPE html> <html> 改为 <!DOCTYPE> <html> OK了
- 如何点击按钮后在加载外部的Js文件
或许有朋友遇到过,想等自己点击按钮之后才执行某一个js文件,那么,你运气好,看到了我的代码了哈哈, <html> <head> <title></title& ...
- 使用js加载器动态加载外部Javascript文件
原文:http://www.cnblogs.com/xdp-gacl/p/3927417.html 今天在网上找到了一个可以动态加载js文件的js加载器,具体代码如下: JsLoader.js var ...
- JavaScript学习总结(十九)——使用js加载器动态加载外部Javascript文件
今天在网上找到了一个可以动态加载js文件的js加载器,具体代码如下: JsLoader.js 1 var MiniSite=new Object(); 2 /** 3 * 判断浏览器 4 */ 5 M ...
- 使用js加载器动态加载外部js、css文件
let MiniSite = new Object(); /** * 判断浏览器 */ MiniSite.Browser = { ie: /msie/.test(window.navigator.us ...
- #iOS问题记录#动态Html加载本地CSS和JS文件
所谓动态Html,指代码中组合生成的html字符串: 若需要加载本地CSS,图片,JS文件,则, 1,需要文件的全路径: 2,需要"file:///"标志: 例如: //获取文件全 ...
- PhoneGap 白名单安全机制 navigator.app 加载外部页面返回以及退出介绍
一. Phonegap 白名单安全机制 Phonegap应用的页面大多存在于本地,但有时需要加载外部的Web页面到应用内置的浏览器 视图中已完成特定的应用功能,出于安全性考虑,PhoneGap 设立了 ...
- React-Native WebView动态加载字体
背景 使用react-native构建的iOS/Android双端APP,通过WebView加载本地页面,需要根据服务器提供的字体列表实现下载和动态加载. 本地字体检查 有些字体手机操作系统已经提供了 ...
随机推荐
- themeleaf引入公共页面
<div th:include="/top :: html"></div>//引用公共页面 <div th:replace="head&qu ...
- sublime text3 中 python3编译出现中文乱码解决方法
转 https://blog.csdn.net/Bin_bin_bingo/article/details/80531582 一.乱码现象 利用sublime自带编译快捷方式ctrl+B会出现中文乱码 ...
- javascript 作用域详解
作用域理解:定义的变量.函数生效的范围.javascript 有全局作用域和函数作用域两种.注:es6实现let 块级作用域不是js原生的,底层同样是通过var实现的.如果想了解具体细节,请访问bab ...
- 在Node.js使用Promise的方式操作Mysql(续)
在之后的开发中,为了做一些事务开发,我把mysql的连接代码从之前的query函数中分离出来了,直接使用原生的方法进行操作,但发现还是有点问题 原因是原生的node-mysql采用了回调函数的方式,同 ...
- SSM项目搭建
1.新建包 com.javen.controller com.javen.service com.javen.dao com.javen.domain com.javen.mapper 2.log4j ...
- 【DWM1000】 code 解密4一 ANCHOR 二进宫testapprun_s
上面我们的代码分析到ANCHOR 调用了一次testapprun_s,但是后面退出后发现还是满足while 条件,逼不得已还得再次调用testapprun_s.testapprun_s 也就是这样一点 ...
- ReactNative用指定的设备/模拟器运行项目
命令行中React native项目目录下键入react-native run-ios会启动iOS模拟器, 默认是使用iPhone6,如果想要试用其他版本的模拟器则需要在react-native ru ...
- 子串 [NOIP2015]
Description 有两个仅包含小写英文字母的字符串 A 和 B.现在要从字符串 A 中取出 k 个互不重叠的非空子串,然后把这 k 个子串按照其在字符串 A 中出现的顺序依次连接起来得到一 个新 ...
- JS基本数据类型
基本数据类型: Undefined,null,boolean,number,string symbol(ES6) 复杂数据类型: object undefined: 变量声明未初始化,自动为undef ...
- js加密php解密---jsencrypt
原理:javascript加密PHP解密: 完全依赖openssl: 一. openssl 是干嘛的 它集成了众多密码算法及实用工具 rsa加密流程:(今天只讲众多加密方式中的一种) 1. 在当前文件 ...