gpt4 book ai didi

javascript - swfobject 检测 swfurl 状态 404

转载 作者:行者123 更新时间:2023-11-27 23:37:02 24 4
gpt4 key购买 nike

我有以下代码,

var flashvars = {};
flashvars.src = "path-to-src";
flashvars.controlBarAutoHide = "false";
flashvars.poster = "path-to-thumbnail";
flashvars.autoPlay = "false";

var attributes = {};

var params = {};
params.wmode = "transparent";
params.allowfullscreen = "true";

var callbackfn = function(e){
// console.log(e)
}

swfobject.embedSWF("http://fpdownload.adobe.com/strobe/FlashMediaPlayback.swf", "altContent", "800", "500", "10.2.0", "/path-to/expressInstall.swf", flashvars, params, attributes, callbackfn);

上面代码中的 swfurl 即( http://fpdownload.adobe.com/strobe/FlashMediaPlayback.swf )给我 404 错误,因此视频无法播放

问号:

  1. 如果 swfurl 是 404,有没有办法用其他 url(path-to-self-domain-swf)替换它

  2. 我尝试过 checking broken URL也是如此,但由于交叉域策略它没有给我想要的 swfurl 状态结果

最佳答案

SWFObject 没有任何检查 404 状态的功能或能力。事实上,只要 SWF 标记已成功添加到页面,它就会报告嵌入成功。它不会验证 SWF 是否实际加载和播放。

撇开SWFObject不谈,跨域客户端404检测实际上是不可能的。最常见的建议是使用 AJAX 尝试加载文件,但跨域时会失败。如果您在加载文件时检查错误,您将看不到有关错误的详细信息(404 与 403 或 500 等)。这种方法在页面加载时间和网络请求方面也很昂贵——您需要尝试加载文件两次。

我要做的(这是一个 hack)是尝试像往常一样加载 SWF,但附加一个计时器来轮询 Flash Player 以确保文件确实正在加载。如果在给定的时间范围内您没有看到加载百分比有任何进展,则可以假设 SWF 不可用并且加载失败。

例如(操作顺序):

  • 加载 SWF
  • 等待一两秒
  • 轮询 SWF 以检查 PercentLoaded 值
    • 如果值大于 0,则假定 SWF 可用。
    • 如果值仍设置为“0”,请稍等片刻,看看是否只是网络故障。
      • 轮询 SWF 以检查 PercentLoaded 值
        • 如果值大于 0,则假定 SWF 可用。
        • 如果值仍设置为“0”,则假定 SWF 不可用(我们不知道原因)。使用你的后备。

此处提供了使用 SWFObject 轮询 SWF 的 PercentLoaded 值的示例:http://learnswfobject.com/advanced-topics/executing-javascript-when-the-swf-has-finished-loading/index.html

关于javascript - swfobject 检测 swfurl 状态 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34045684/

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