flash - 无法在Firefox上单击Flash中的允许按钮

标签 flash firefox

我有一个在 iframe 中嵌入一些 flash 内容的 webapp。 flash 部分正在请求访问网络摄像头。在 firefox/mac os 上,用户不能点击允许按钮。这只发生在嵌入 swf 文件的页面加载到 iframe 中时,单独加载时它可以正常工作。有没有其他人遇到过类似的问题?你知道任何解决方法吗?

编辑:供将来引用:我们通过 JS 定位一些东西,我们使用“半像素”(例如 20.5px)定位。一旦我们修复了一切正常。

最佳答案

我发现在 CSS 中使用自动边距的情况下也会存在这个错误。

例如,在固定宽度和居中对齐的布局中,通常使用“margin: 0px auto;”保持内容居中。这似乎很好地为内容产生了可能的(可能的)十进制左/右边距。这对 Firefox 来说并不是真正的问题。它可以很好地处理十进制像素偏移。

但是,当 Flash 小部件的对象容器以十进制像素值定位时,它们似乎完全被吓坏了。至少,您不能与“允许”按钮进行交互。对我来说,这似乎是这个错误的根本原因,你会看到许多人广泛报道(因为它至少与 FF 有关)。

至于为什么只出现在FF,我也不是很确定。在我的 OSX 机器上,Safari 和 Chrome 不会对 flash 对象表现出这种行为。也许 Webkit 中的所有 DOM 元素都会自动使用四舍五入的像素偏移值呈现?

对于 Firefox,我实现了这个解决方法(对于中心对齐的设计很有用):

$(document).ready( function() {
  repositionContentContainer();
});

function repositionContentContainer() {
  // this routine is a complete hack to work around the flash "Allow" button bug
  if ( $("#content").length > 0 ) {

    //Adjust the #content left-margin, since by default it likely isn't an int
    setLeftMargin();
    //If the User resizes the window, adjust the #content left-margin
    $(window).bind("resize", function() { setLeftMargin(); });
  }
}

function setLeftMargin() {
  var newWindowWidth = $(window).width();
  var mainWellWidth = $("#content").width();
  // create an integer based left_offset number
  var left_offset = parseInt((newWindowWidth - mainWellWidth)/2.0);
  if (left_offset < 0) { left_offset = 0; }
  $("#content").css("margin-left", left_offset);
}

关于flash - 无法在Firefox上单击Flash中的允许按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3003724/

相关文章:

javascript - 关闭 iframe 周围的灯

javascript - 如何在Flash CS5.5 Actionscript 3.0中创建警报弹出窗口?

css - 帮助解决这个 AS3 代码

java - 希望直接扫描文档以上传到网页

firefox - 升级到 Firefox 85 后,Pinboard 书签被阻止

python - 带有 Selenium 的 Firefox 空白网络浏览器

javascript - 在 Firefox v60.0.2(WebRTC、Firefox)中创建 sdf 报价时出错

flash - 为什么反编译swf文件时jpexs工具不起作用?

javascript - 如何使用 Smokescreen/JavaScript 将 Flash 转换为图像

python - 页面未在 Windows 上使用 Python 加载到 Selenium WebDriver 中