gpt4 book ai didi

javascript - Cordova WebView,打开InAppBrowser并同时发布表单

转载 作者:行者123 更新时间:2023-11-28 05:52:22 26 4
gpt4 key购买 nike

使用 Cordova 并使用 inAppBrowser 说在 iPhone 上打开一个窗口。如何同时将表单发布到该新窗口实例中。我似乎可以使用 GET 请求打开外部或本地 HTML 文件,但无法将数据发布到该新页面中。我想做以下事情。但这会产生意想不到的行为,看起来它一遍又一遍地打开多个窗口。另外,如果我无论如何更改代码,它都不会发布表单。

var ref = $window.open('modules/life/views/cordovaAutoParamed.html', target, options);             
if (ref !== undefined && ref !== null) {
ref.addEventListener('exit', function(event) {});
ref.addEventListener('loaderror', function(event) {});
ref.addEventListener('loadstart', function(event) {
});
ref.addEventListener('loadstop', function(event) {
ref.show();
var fullAutoPostParamed = ' window.document.open(\'text/html\', \'replace\'); \
window.document.write(\'<html><body onload="document.forms[0].submit()"> \'); \
window.document.write(\' <form action="'+paramed.callbackUrl+'" method="post"> \'); \
window.document.write(\' <input type="hidden" name="Assertion" value="123" /> \'); \
window.document.write(\' <input type="submit" value="execute" /> \'); \
window.document.write(\' </form></body></html> \'); \
window.document.close();';
paramedLogger.error(fullAutoPostParamed);*/
ref.executeScript({code: fullAutoPostParamed });
ref.show();
});

此外,executeScript 似乎无法在桌面上的 Chrome 等常规浏览器上运行。

最佳答案

我认为您应该只调用 window.document.write 函数,而不调用 window.document.open (当前文档是将包含表单的文档) .

然后,删除 body onload 函数并向表单添加 ID:

<form id="myform">

最后,在 ref.executeScript 之后添加另一个调用:

ref.executeScript({code: 'document.myform.submit();'})

发布表单。

关于无限循环:我不知道你为什么多次调用 show() ,文档说该方法:

Displays an InAppBrowser window that was opened hidden. Calling this has no effect if the InAppBrowser was already visible.

关于executeScript方法: Docs says它也可以在浏览器中运行。请检查您的控制台日志以获取相关信息。还可以尝试使用浏览器的调试器工具检查代码的执行流程。

关于javascript - Cordova WebView,打开InAppBrowser并同时发布表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37979904/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com