-1

我正在构建一个 html 文件,该文件存储在

[[PROJ UserDirectory] stringByAppendingPathComponent:@"tmp_Form_File.html"]

在文件“tmp_FOrm_File.html”内部,它是动态构建的。正文显示正确,但 JS 不会执行。

我试图做:

NSString * cordova_path = [[NSBundle mainBundle] oathForResource:@"cordova-2.2.0" ofType:@"js" inDirectory:@"html"]
NSString = [[@"<script type=\"text/javascript\" src=\"" stringByAppendingString:cordova_path] stringByAppendingString:@"\"></script>"];

对于 jquery 也是如此。

我的问题是我不认为当我将 htmlfile 加载到 webView 中时,它会相应地获取数据。

我测试了琴弦,它们看起来不错:

<script type="text/javascript" src="/var/mobile/Applications/[DATA]/PROJ.app/html/cordova-2.2.0.js"></script><script type="text/javascript" src="/var/mobile/Applications/[DATA]/PROJ.app/html/jquery-1.7.2.min.js"></script><script type="text/javascript">$(function(){ alert("test"); });</script>

1)我做错了吗?如果是这样,我该如何解决这个问题?

2)通过ios将bundle中的html目录复制到Documents会更好吗?如果是这样,怎么做?

编辑:暂时删除了 jquery 引用,jquery 和 cordova。只是使用纯javascript,它会正确提醒。所以这意味着捆绑包中的 src 有问题。

4

2 回答 2

0

发生这种情况是因为您的引用不起作用。当您希望您的 HTML 在 webview 中呈现并在其中包含一些相对路径时,您可以像使用“为添加的文件夹创建文件夹引用”选项一样添加它。

如果此 html 页面不会获取和存储任何数据,则将其保存在 bundle 中,否则将它们复制到 Appdelegate 中的 Library 或文档文件夹。

希望这可以帮助!

像这样

于 2012-12-11T17:55:44.200 回答
0

我无法在 atm 中引用它,但我以这种方式解决了它: - 我将 [BUNDLE]/html 的内容复制到 Documents....

    NSString * sourcePath = [[[NSBundle mainBundle] pathForResource:@"cordova-2.2.0" ofType:@"js" inDirectory:@"html"] stringByDeletingLastPathComponent];
    NSString * documentDirectory = [AssetInspectorFileManager UsersDirectory];
  • 调整了javascript的src。

    <脚本类型=\"text/javascript\" src=\"cordova-2.2.0.js\">

    <脚本类型=\"text/javascript\" src=\"jquery-1.7.2.min.js\">

  • 关闭缺少的括号

    " $(\"div.container\").css(\"z-index\",1;"

变成了

 "   $(\"div.container\").css(\"z-index\",1);"
  • Coomenting 不适合这样做,因为当您写出数据时,例如:

    $(this).click(function(){//[THIS IS A COMMENT] alert("hi");});

因此,您必须针对此类问题进行调整。

于 2012-12-11T17:57:15.240 回答