当前位置: 首页 > 知识库问答 >
问题:

iframe ajax在android浏览器中的应用

柳晔
2023-03-14

我有一个html页面,在一个android应用程序中使用。从这个页面,我需要张贴数据到服务器和响应是一个附件,需要下载。我为此目的使用了隐藏的iframe黑客。但不幸的是它的失败。谁能解释一下根本原因吗?





function download(){

    var iframe = document.createElement("iframe");
    //iframe.src = "http://localhost:9080/HttpOptions/MultiPartServlet";
    iframe.style.display = "none";  
    iframe.id = "myframe";
    document.body.appendChild(iframe);

    var doc = document.getElementById("myframe").contentWindow.document;

    var form = doc.createElement("form"); 
    form.setAttribute("name", "theForm"); // give form a name
    form.setAttribute("id", "theForm"); // give form a name
    form.setAttribute("action", "http://localhost:9080/HttpOptions/MultiPartServlet"); // give form an action
    form.setAttribute("method", "post"); // give form a method

    var par1 = doc.createElement("input");
    par1.setAttribute("name", "theSubmit"); // give input a name
    par1.setAttribute("type", "submit"); // make it a submit button
    par1.setAttribute("value", "Submit"); // give input a value


    var par2 = doc.createElement("input");
    par2.setAttribute("name", "name"); // give input a name
    par2.setAttribute("type", "text"); // make it a submit button
    par2.setAttribute("value", "deepak"); // give input a value

    form.appendChild(par1);
    form.appendChild(par2);

    doc.body.appendChild(form);
    var myframe = document.getElementById('myframe');
    var innerDoc = iframe.contentDocument || iframe.contentWindow.document;

    form.submit();







}





共有1个答案

施越彬
2023-03-14

将父页和框架页中的document.domain设置为相同的值。

示例:

<script type="text/javascript">
document.domain = 'example.com';
</script>

把这个放在父页和框架页中,问题就会消失。

 类似资料:
  • 问题内容: Javascript如何检测网站是加载到Android的常规浏览器中还是加载到另一个应用程序的WebView中?我想在这两种情况下运行略有不同的代码。 问题答案: 活动- > onCreate RES- >值-> strings.xml Java脚本

  • 我试图在用户拍照时检测相机方向,以便在画布上绘制时进行调整。问题是我不能使用设备方向,因为即使方向锁定打开,我也需要它才能工作。 摄像机设置 视频流快照 来自David Walsh的参考代码 - 浏览器摄像头

  • 我最近实现了shouldInterceptRequest方法来检测链接的时间“http://sitemercado.com.br/valida“点击在android浏览器中打开它,而不是在webview中内部打开,直到它工作为止。链接在浏览器中打开,但当我回来查看webview应用程序时,它也被加载了,我希望它只在浏览器中加载。 我的代码如下: 我哪里做错了?

  • 我已将AssetLink文件托管到我们的域中https://ourdomain/.well-known/assetlinks.json并用计算机进行了验证https://developers.google.com/digital-asset-links/tools/generator通过android studio的应用程序链接Assistant,并通过两种方式获得验证状态。但当我共享调试APK进

  • 问题内容: 我想在javascript /浏览器中启用ajax响应的缓存。 从jquery.ajax docs : 默认情况下,始终发出请求,但浏览器可能会在其缓存之外提供结果。要禁止使用缓存的结果,请将cache设置为false。如果自上次请求以来未修改资产,则导致请求报告失败,请将ifModified设置为true。 但是,这些地址都没有强制缓存。 动机: 我想在我的初始化函数中放入调用,其中

  • 本文向大家介绍Docker 实现浏览器里开发Android应用的功能,包括了Docker 实现浏览器里开发Android应用的功能的使用技巧和注意事项,需要的朋友参考一下 在浏览器里开发Android应用          这里需要用到Docker的知识, Che 发布后对Android应用开发多了一个工具,这里就对如何实现该功能就行详细介绍: