MathJax删除UIWebView中的所有正文内容

时间:2014-07-27 04:41:06

标签: javascript ios objective-c uiwebview mathjax

我尝试创建一个类方法,该方法将采用MathJax字符串,将所需的HTML包装在其周围并将其加载到指定的UIWebView中。我的代码如下:

+ (void)loadMathJax:(NSString *)jax inWebView:(UIWebView *)webView fontSize:(int)fontSize
{
    NSString *mathJaxPath = [[NSBundle mainBundle] pathForResource:@"MathJax" ofType:@"js" inDirectory:@"MathJax"];

    NSString *htmlContent = [NSString stringWithFormat:@""
                             @"<html><head>"
                             @"<meta name='viewport' content='initial-scale=1.0' />"
                             @"<style type='text/css'>"
                             @"body { background-color:transparent; font-size:%d; color: black; }"
                             @"</style>"
                             @"<script type='text/javascript' src='%@?config=TeX-AMS-MML_HTMLorMML-full'>"
                             @"</head>"
                             @"<body>\\(%@\\)</body>"
                             @"</html>"
                             , fontSize, mathJaxPath, jax];

    NSLog(@"%@",htmlContent);

   [webView loadHTMLString:htmlContent baseURL:[NSURL fileURLWithPath:mathJaxPath]];
}

如果我使用此方法,NSLog会显示正确的HTML(例如,使用<body>\(Z_1 = 4 + 2i\)</body>),但模拟器中的Web视图为空白。使用Safari Web检查器显示已从<body>标记之间删除了所有内容。

我尝试过的事情:

  • 使用MathJax CDN而不是在本地加载它。没有区别。
  • \\(%@\\)替换为test text(即删除MathJax标记)。在运行app时,<body>标签之间仍然没有内容。
  • 删除MathJax <script>电话。文本现在显示但不呈现为数学。
  • baseURL:从mathJax路径更改为nil。没有区别。

1 个答案:

答案 0 :(得分:0)

解决了这个问题。我忘记了MathJax导入的结束</script>标记。