Iframe.readyState 在 Chrome 中不起作用

2024-01-29

我动态创建一个 Iframe 并将下载页面设置为 url二进制文件(xls、doc...)。下载文件时我会显示动画。当没有的时候,我就把它隐藏起来。

问题是 Chrome 不知道文件何时完全下载,即 iframe 何时完全加载。我使用 iframe 属性readyState检查 iframe 状态:

var iframe = document.createElement("iframe");
iframe.style.visibility = "hidden";
// I start a progress animation
window.setTimeout(showProgressAnimation, 1000);
// I start the file download
iframe.src ='GetFile.aspx?file=' + fileName;
document.body.appendChild(iframe);


function showProgressAnimation() {
   if (iframe.readyState == "complete" || iframe.readyState == "interactive") {
      // I stop the animation and show the page
      animation.style.display = 'none';
      progressBar.hide();
      $('#page').show();
   }
   else {
      // Chrome is always getting into this line
      window.setTimeout(showProgressAnimation, 1000);
   }
}

所以结果是无限循环。

我已经尝试过以下方法,它在 Firefox 和 Chrome 中有效but not当内容是二进制文件时:

if ($.browser.mozilla || $.browser.webkit ) {
    iframe.onload = function showProgressAnimation() {
        animation.style.display = 'none';
        progressBar.hide();
        $('#page').show();
    }
}
// IE
else{
     window.setTimeout(showProgressAnimation, 1000);
}

您可以使用onload来发出负载信号iframe

这是一个简单的例子

var iframe = document.createElement("iframe");
iframe.style.display = "none";
// this function will called when the iframe loaded
iframe.onload = function (){
  iframe.style.display = "block";    
  alert("loaded");
};
// set the src last.
iframe.src ='http://www.test.com';

// add it to the page.
document.getElementById("one").appendChild(iframe);

在这里测试:
http://jsfiddle.net/48MQW/5/ http://jsfiddle.net/48MQW/5/
With src最后加载。
http://jsfiddle.net/48MQW/24/ http://jsfiddle.net/48MQW/24/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Iframe.readyState 在 Chrome 中不起作用 的相关文章

  • 如何将函数附加到弹出窗口关闭事件(Twitter Bootstrap)

    我做了一些搜索 但我只能认为我可以将事件附加到导致其关闭的按钮 https stackoverflow com questions 13205103 attach event handler to button in twitter boo
  • jQuery AJAX 请求在 IE8 中失败,并显示消息“错误:调用 open 方法之前无法调用此方法。”

    我正在使用 jQuery 1 4 2 并尝试执行一个简单的 AJAX 请求 目标 URL 返回一个 JSON 字符串 我使用 jslint 对其进行了验证 该请求在 Firefox 和 Chrome 中有效 但不想在 IE8 中工作 我无法
  • JQuery Mobile 与 MVC 的链接

    我正在使用 ASP NET MVC 3 和 Razor UI 设置 JQuery 移动网站 我正在生成我的链接 例如 a href See Group 2 a 假设我从 Home Index 访问它 我遇到的问题是 当我点击链接时 它会出现
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • Chrome 扩展程序在代码中使用 client_secret

    我正在开发具有自己的 oAuth 授权的 Google Chrome 扩展 当然 我必须使用 client id 和 client secret 作为请求令牌 有什么办法可以向用户隐藏这些数据吗 由于此请求只是 javascript 源代码
  • Firefox 不会在使用 jQuery AJAX 加载的内容上呈现 CSS 样式

    我有一个网站 允许用户对书籍和文章发表评论 主表单有一个搜索输入 用于查找相关书籍或文章 来源 我使用 jQuery 根据输入的搜索词从外部站点动态加载新源 然后还使用 AJAX 返回列表中的源 我有两个问题 现在 在用户输入四个字符后 j
  • jQuery:处理 getJSON() 中的错误?

    使用 jQuery 时如何处理 500 错误getJSON http api jquery com jQuery getJSON 有几个关于错误处理的问题getJSON and https stackoverflow com questio
  • 在 HTML5 画布中,如何用我选择的背景遮盖图像?

    我试图用画布来实现这一点 globalCompositeOperation 但没有运气 所以我在这里问 这里有类似的问题 但我没有在其中找到我的案例 我的画布区域中有图层 从下到上的绘制顺序 画布底座填充纯白色 fff 用fillRect
  • 刷新页面时保存用户的选择

    我目前有一个页面显示不同团队的数据 我有一些数据 用户可以单击使其处于 打开 或 关闭 状态 并为每个数据显示不同的图标 它基本上就像一个清单 只是没有物理复选框 我想记住哪些 复选框 已被选中 即使在用户刷新页面或关闭浏览器并稍后返回之后
  • 有没有办法在 onclick 触发时禁用 iPad/iPhone 上的闪烁/闪烁?

    所以我有一个有 onclick 事件的区域 在常规浏览器上单击时 它不会显示任何视觉变化 但在 iPad iPhone 上单击时 它会闪烁 闪烁 有什么办法可以阻止它在 iPad iPhone 上执行此操作吗 这是一个与我正在做的类似的示例
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 正则表达式 - 从 markdown 字符串中提取所有标题

    我在用灰质 https www npmjs com package gray matter 以便将文件系统中的 MD 文件解析为字符串 解析器产生的结果是这样的字符串 n Clean er ReactJS Code Conditional
  • Three.js 各种大小的粒子

    我是 Three js 的新手 正在尝试找出添加 1000 个粒子的最佳方法 每个粒子都有不同的大小和颜色 每个粒子的纹理是通过绘制画布创建的 通过使用粒子系统 所有粒子都具有相同的颜色和大小 为每个粒子创建一个粒子系统是非常低效的 有没有
  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows
  • 在 HTML 下拉列表中有一个滚动条

    我正在寻找一种在 HTML 的下拉列表中添加滚动条的方法 这样如果下拉列表包含的内容超过例如 5 项 将出现滚动条以查看其余项 这是因为我将被迫列出一些大清单 过去几个小时我一直在谷歌上搜索它 但没有运气 它需要适用于 IE8 FF 和 C
  • Vue 和 Vuex:处理依赖的计算属性

    我的应用程序是一个使用 Vuex 在 Vue 中构建的精简电子表格 关键组件是TableCollection Table and Row The TableCollection有一个包含多个的数组Table对象 每个Table有一个包含多个
  • 使用css bootstrap时如何仅向一列添加右边框?

    我正在尝试使用CSS引导框架 http getbootstrap com css tables在我的项目中 我正在使用带有以下类的表table table bordered table striped 我想删除除第一列之外的所有列的边框 这
  • Javascript - 水波纹效果

    我需要 JS 上的脚本 它将以 水波纹 样式更改 images html 抱歉 6MB GIF 文件 http fcuunited ru temp listening2 gif http fcunited ru temp listening
  • 在 CKEditor 中设置字体大小和字体系列

    我正在使用 ckeditor 我想问一下这个插件如何设置font family和font size 我尝试过使用 CKEDITOR config font defaultLabel Arial CKEDITOR config fontSiz
  • 如何使用asm.js进行测试和开发?

    最近我读到asm js规范 看起来很酷 但是是否有任何环境 工具来开发和测试这个工具 这还只是处于规范阶段吗 您可以尝试使用 emscripten 和 ASM JS 1 并从侧分支在 firefox 构建中运行它 有关 asm js 的链接

随机推荐

  • 在 MySQL 中生成一系列数字

    如何从 MySQL 查询生成一系列连续数字 每行一个 以便将它们插入到表中 例如 nr 1 2 3 4 5 我只想使用 MySQL 而不是 PHP 或其他语言 这是一种基于集合而无需循环的方法 这也可以制作成视图以供重复使用 该示例显示了从
  • 我可以忽略除以零产生的 SIGFPE 吗?

    我有一个程序故意执行除以零 并将结果存储在易失性变量中 以便在某些情况下停止 但是 我希望能够禁用此停止 而不更改执行除以零的宏 有什么办法可以忽略它吗 我尝试过使用 include
  • 在 Eclipse 插件中使用 JavaScript

    可以使用JavaScript在 Eclipse 插件的视图中 默认情况下 eclipse 在 JVM 中的 java 上运行 但 JVM 对动态脚本语言的支持越来越多 您可以随时使用org mozilla javascript http d
  • 如何将文本的背景图片设置到UIlabel中?

    我们可以在 UILabel 中为文本设置颜色 但是我们可以在 UILabel 中将图像设置为文本吗 你能帮助我吗 谢谢大家 UILabel lbl UILabel alloc initWithFrame CGRectMake 20 220
  • gradle 2.0.0 和 DataBinding 的问题

    最近我将Android studio从1 5 1更新到2 0 更新后它要求我使用最新的gradle 即com android tools build gradle 2 0 0 dependencies classpath com andro
  • Google 地图 MarkerClusterer 不起作用或隐藏所有标记

    取决于我把线放在哪里 var mc new markerclusterer map 如果它去到示例似乎暗示的地方 在引入 var map 之后 所有标记都会消失 示例运行here https c9 io lmmx molmachmap wo
  • 我们如何知道调用者函数的名称?

    在C语言中 FUNCTION 可以用来得到current函数的名称 但是如果我定义一个名为 a 的函数 并在 b 中调用它 如下所示 b a 现在 在源代码中 有很多像 b 这样的函数调用 a 例如c d e 是否可以在 a 中添加一些代码
  • 使用列名从 ResultSet 获取小写列

    我使用的是 Oracle 12cr1 数据库 看来我无法从中获得价值ResultSet如果列名是小写 则使用列名 创建表create table Tab col number col varchar2 10 所以第二列是小写的 如果我打电话
  • FILE_FLAG_DELETE_ON_CLOSE 和内存映射文件

    并不是说它特别有用 但我很好奇为什么下面的方法有效 仅仅是因为即使文件被删除后该页面仍然在内存中吗 在什么情况下 如果页面被换出 数据会丢失 include
  • 链接 gcc 6、gcc 7 和 gcc 8 对象安全吗?

    链接 C 17 C 14 和 C 11 对象是否安全 https stackoverflow com q 46746878 2069064询问有关链接使用不同语言标准编译的对象的问题 Jonathan Wakely 对这个问题的出色回答解释
  • 从批处理文件中发现Java安装在哪里?

    我想从批处理脚本设置 JAVA HOME 变量 此代码片段将在当前路径中搜索 java exe 并打印出找到它的位置 for f j in java exe do echo dp PATH j 在我的系统上这给了我 C WINDOWS sy
  • 错误 ASP 0177:8007007e COM DLL CreateObject 失败

    我们一直在尝试在新服务器上安装 COM DLL 界面是经典的 ASP 地图连接器 DLL 似乎是问题所在 但据我所知 这是问题所在 我们无法获取 IIS 提供的页面 只给出 500 错误 跟踪 ASP 时 127 ASP SCRIPT TR
  • 给 Jekyll 类别添加标题

    我想将我的帖子的打印类别名称转换为标题大小写 我找不到合适的液体过滤器 我尝试使用破折号和驼峰过滤器 但没有骰子 或者 我想打印 YAML frontmatter 中写入的类别名称 例如 对于包含以下内容的帖子 category Here
  • Android 中的计时器不会停止

    我在android中做了一个应用程序并使用了这样的计时器 try CountDownTimer start1 new CountDownTimer 20000 1000 public void onTick long millisUntil
  • CAGradientLayer 不起作用[重复]

    这个问题在这里已经有答案了 我创建了一个新项目 在LinkedIn中QuartzCore framework并进口
  • 如何阻止浏览器对 GET 上的表单值进行 url 编码

    我有一个表格method get 在表单中 我需要传递 CSS 文件的 URL 但它正在将其编码为http 3A 2F 2Fwww etc 有没有办法停止 URL 编码 因为它会破坏文件 Thanks 背景 It s a bit more
  • 为什么背景颜色需要 1px 粗体? [复制]

    这个问题在这里已经有答案了 这是我的粗话 table orders background color ff0000 然而 当我实际运行这个时 我收到一条错误消息Invalid CSS after ff0000 expected expres
  • OpenCV - 找不到指定扩展名的编码器

    这是我用来将 IplImage 转换为 jpg 的代码 IplImage fIplImageHeader fIplImageHeader cvCreateImageHeader cvSize 160 120 8 3 fIplImageHea
  • ios - 应用程序关闭时本地通知不更新徽章号码

    我注意到 当 iOS 设备中收到本地通知时 通知会显示在通知中心 但应用程序关闭时应用程序徽章编号不会更新 我需要点击通知中心的通知才能将本地推送消息传输到应用程序 这是正常行为吗 可以通过远程推送通知来解决这个问题吗 您可以利用appli
  • Iframe.readyState 在 Chrome 中不起作用

    我动态创建一个 Iframe 并将下载页面设置为 url二进制文件 xls doc 下载文件时我会显示动画 当没有的时候 我就把它隐藏起来 问题是 Chrome 不知道文件何时完全下载 即 iframe 何时完全加载 我使用 iframe