Cordova iframe 在 iOS Safari 中工作,但在 Android 中不工作

Cordova iframe working in iOS Safari but not in Android

我正在开发 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 的视图,然后创建一个表单以提交给它。 虽然这在 iOS 模拟器中完美运行,即使没有 Cordova(这还很简单 JavaScript),但它在真正的 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", source: file:///android_asset/www/index.html (1)

类似的问题表明 JSBin 或类似网站存在非法空格,但这似乎不是同一个原因,因为代码没有被复制并且实际上可以在 iOS .

为什么会发生这种情况,如何解决?

提前致谢

看起来有些非法字符实际上进入了脚本,仍然不知道为什么。至少现在可以了。