使用复杂的JavaScript在UIWebView中插入HTML的代码片段

Code Snippet to use complex JavaScript to insert HTML inside UIWebView?

本文关键字:HTML 插入 代码 片段 复杂 JavaScript UIWebView      更新时间:2023-09-26

我必须做一些复杂的工作与UIWebView和Javascript,总是得到的问题,当我试图插入复杂的Javascript涉及JQuery和HTML片段,包含Javascript本身。我似乎从来没有足够的引号和单引号符号,把脚本元素有点痛苦。

是否有一个神奇的Objective-C代码片段,或者一个更容易的复制粘贴的方式来使用更复杂的脚本,你使用这些任务?

编辑:为了解释更多一点,我有HTML的大片段(也包含Javascript和东西像<a href="javascript:doSomething('stupid')")>,我需要通过Javascript放入DOM后,我在UIWebView加载一个网站。

我现在的方法是将HTML内容放入文件中,重写它们,这样我就可以在js变量中使用'stupid',这样我就不需要额外的单引号,将占位符放入像###placeholder1###这样的位置,将该文件加载到NSString中,并将这些占位符替换为通过html = [html stringByReplacingOccurrencesOfString:@"###placeholder1###" withString:dynamicStuffHtml];在我的应用程序中生成的动态数据。之前的动态数据不包含单引号,除了在文本内容中,我用html编码的&#39;代替了单引号。

然后我试着把整个字符串放入DOM,这样做:

NSString* javascript = [NSString stringWithFormat:@"%@%@%@",@"jQuery('.focus_box').first().before('",html,@"');"];
[webView stringByEvaluatingJavaScriptFromString:javascript];

这适用于简单和简短的示例(例如,当我放入短段落或简单的HTML时),但对于大约50-60行的完整HTML片段,它就不起作用了。此外,所有的编辑,替换,修补和填充让我认为也许有人使用UIWebViews和JavaScript有一个更好的解决方案,已知的工作。

再次编辑:我开始了一个奖励,因为我不能相信有这么少的用法的UIWebView,没有人有一个答案,或者已经有一个大的私有工具类来处理这样更复杂的JavaScript交互,其中大的HTML块可以包含不需要重新加载。: -)

要在UIWebView中加载一些文件表单,请执行以下操作

<script language="javascript" type="text/javascript">
var bundlePath = "here_goes_full_path_to_your_bundle"; 
// It should be something like file:///var/.../YouApp.app 
// Set it from your code
jQuery.get(bundlePath + "/someFile.html", function(data) {alert(data);});
</script>

我创建了一些网站内部的东西,使用这种技术相当过度。我遇到的最大问题是如何正确封装引号因为所有引号都必须用

遮罩

下面是一小段代码:

code += "<table onclick='gbyid('"suchfeld " + parametername + "'").value = '"'", " + parametername + " = '"'"'><tr><td>Delete Date</td></tr></table>"

我不知道,如果这有帮助,但'它只是不工作'不是一个大提示:)