【发布时间】:2015-03-26 17:33:15
【问题描述】:
我正在开发 Cordova 应用程序,但遇到了问题。 我面临的问题发生在将隐藏表单提交到 iframe 以预览文件的脚本中。脚本如下:
document.body.innerHTML = '\
<div class="topbar">\
<div class="title">File</div>\
</div>\
<div id="content" class="content">\
<iframe id="file-iframe" name="file-iframe" class="file-iframe" charset="UTF-8"></iframe>\
</div>';
var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", "url_of_file");
form.setAttribute("target", "file-iframe");
var filenameField = document.createElement("input");
filenameField.setAttribute("type", "hidden");
filenameField.setAttribute("name", "q");
filenameField.setAttribute("value", file.filename);
form.appendChild(filenameField);
document.body.appendChild(form);
form.submit();
form.parentNode.removeChild(form);
当调用该脚本时,基本上是创建一个带有空 iframe 的视图,然后创建一个表单来提交给它。 尽管即使没有 Cordova(这还是纯 JavaScript),这在 iOS 模拟器中也能完美运行,但在真正的 Android 设备上却失败了。调查日志时会出现以下行:
00:43:16 D CordovaLog : file:///android_asset/www/index.html: Line 1 : Uncaught SyntaxError: Unexpected token ILLEGAL
00:43:16 I chromium : [INFO:CONSOLE(1)] "Uncaught SyntaxError: Unexpected token ILLEGAL",来源:file:///android_asset/www/index.html (1)
类似的问题表明存在来自 JSBin 或类似网站的非法空格,但这似乎与这里的原因不同,因为代码尚未被复制并且实际上可以在 iOS 上运行。
为什么会发生这种情况以及如何解决?
提前致谢
【问题讨论】:
标签: javascript android cordova iframe