iphone - UIWebView 根据所选主题更改 css 文件

标签 iphone html css ios uiwebview

我正在编写一个包含多个主题的应用程序。用户从应用程序设置中选择一个主题,所有应用程序主题都会更改。但是我无法实现的是更改本地 htmls 的 css 文件。

我有几个本地 html 文件。

HtmlFileA.html
HtmlFileB.html
HtmlFileC.html
. . .

和CSS文件

genericCssTheme1.css
genericCssTheme2.css
. . .

关于每个主题。

我想做的是更改 html 中的 css 文件,以便我可以使我的颜色适合新选择的主题。我不想为每个主题一次又一次地创建相同的 Html 文件。只需更改 css 引用就足以实现我想要的。这就是我将 html 加载到 UIWebView 的方式。

NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[webView loadHTMLString:htmlString baseURL:baseURL];

每个 html 文件都以相同的方式链接到其 css。像这样:

我实际上有一个解决方案,但我想问问它是否有另一种方法(一种有效的方法)来做到这一点。 这就是我想出的。 我将在每个 html 中编写一个通用的 href 引用。

<link rel="stylesheet" type="text/css" href="genericcssfilename"/>

在将它加载到 UIWebView 之前,我将用实际文件名替换它。

<link rel="stylesheet" type="text/css" href="genericCssTheme2.css"/>

您有其他方法可以建议我吗?

最佳答案

也许你可以使用 JS 在 webView 中选择主题?不知道如何在 JS 中实现它(你可以在这个网站上询问)但它应该足以调用

[webView stringbyevaluatingJavaScript:@"ChangeThemeTo(1)"]

并在 webView 中完成所有工作,而无需重新加载和重新创建 HTML。 您的 JS 函数必须添加到您的 html 作为引用或其他东西(网络编程不是我的技能)

关于iphone - UIWebView 根据所选主题更改 css 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9942652/

相关文章:

javascript - 在 html 页面上嵌入 Web-GL 沙箱的效果

css 多重选择器解释

iphone - 方法完成后执行代码

iphone - 无法获得支持的界面方向数组,为什么?

javascript - 在Javascript中,如何判断和调用继承的监听器?

javascript - 将页面导入到 App.js 时,它显示为空白

包含 5 个具有相同类名的 ul 的无序列表的 css 样式,对每个应用不同的样式

iphone - 如何拦截点击 UITextView 中的链接?

iphone - 创建自定义 UIActivityIndi​​catorView

javascript - 缩小比。可读性困惑