我正在构建一个存储在
中的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将捆绑包中的html目录复制到Documents会不会更好?如果是这样,怎么样?
编辑:暂时删除了jquery引用,jquery和cordova。只是使用纯JavaScript,它会正确提醒。这意味着src在Bundle中存在问题。
答案 0 :(得分:0)
这种情况正在发生,因为您的引用无效。如果希望HTML在Webview中呈现其中包含一些相对路径,则可以使用“为添加的文件夹创建文件夹引用”选项添加它。
如果这个html页面不会获取并存储任何数据,那么请将其保存在bundle中,否则将它们复制到Appdelegate中的Library或document文件夹中。
希望这有帮助!
答案 1 :(得分:0)
我无法引用它,但我这样解决了: - 我将[BUNDLE] / html的内容复制到Documents ....
NSString * sourcePath = [[[NSBundle mainBundle] pathForResource:@"cordova-2.2.0" ofType:@"js" inDirectory:@"html"] stringByDeletingLastPathComponent];
NSString * documentDirectory = [AssetInspectorFileManager UsersDirectory];
调整了javascript的src。
&LT;脚本类型= \“text / javascript \”src = \“cordova-2.2.0.js \”&gt;
&LT;脚本类型= \“text / javascript \”src = \“jquery-1.7.2.min.js \”&gt;
关闭了缺失的括号
“$(\”div.container \“)。css(\”z-index \“,1;”
成了
" $(\"div.container\").css(\"z-index\",1);"
为此做好准备是不好的,就像你写出数据一样:
$(this).click(function(){// [这是一个评论]警告(“hi”);});
所以你必须针对这类问题进行调整。