如何判断一个网站是否加载了Flash?

14

我正在测试一个由多个不同开发人员创建的非常大的网站,是否有一种方法可以判断该网站是否使用并/或已加载Flash?如果页面正在使用Flash,则有没有一种方法可以确定页面/代码的哪个部分会触发浏览器/页面中的Flash插件进行加载?

更新:我将更加明确。当我使用上的访问我的网页登录页面时,并打开Chrome任务管理器,我没有看到任何正在运行的插件。当我登录并着陆在主页上时,我现在看到Chrome已经加载了进程“插件:Shockwave Flash”。查看开发工具中的网络选项卡,我没有看到任何Flash(swf)文件被下载。如果我在页面上停留足够长的时间,Chrome将删除“插件:Shockwave Flash”进程。为什么Chrome在页面不使用该插件时会加载此插件?


2
你能否搜索整个网站目录中的 *.swf 文件? - Marty
@MartyWallace 在我的特定情况下,页面默认加载了一个Flash文件,并且已更改为根据用户操作进行加载。当我测试更改时,在瀑布图中不再看到任何.swf文件,但我确实看到Mac上的Google Chrome启动了Flash插件子进程。我真的想弄清楚为什么会发生这种情况,因为并非所有页面都会出现这种情况。 - Eric
1
这个问题可能没有得到关注,因为它模糊不清、难以理解,你觉得呢? - Pranav Hosangadi
@wvxvw 在这种情况下使用代理是行不通的,因为我在Chrome开发者工具的网络选项卡中没有看到任何Flash内容被下载。 - Eric
4个回答

9
要检查网站是否使用Flash,您需要检查嵌入标签或对象标签。对于嵌入标签,您可以看到应用程序类型,应该是shockwave,对于对象标签,您可以看到在Windows上相同的CLSID值。 要查看Flash插件是否已加载,我不确定如何做到这一点...但是要查看从网络加载的Flash文件是否已加载,可以监听标签的'readyState'事件,并等待其变为4。

2
你的回答是最接近帮助我找到答案的。在 JavaScript 文件中,它将一个 Object 元素附加到 body 元素的末尾。这不会触发 Flash 插件加载,因为它没有调用任何加载 Flash 文件的函数。下一行代码是 objectElement.GetVariable("$version");,用于获取安装在计算机上的 Flash 版本。这将触发调用以加载 Flash 插件。当我查看源代码时,我没有看到这个,因为 JavaScript 代码会在获取版本后从 dom 中删除对象。 - Eric
1
在Chrome中,如果您想查看Flash插件是否已加载,可以按照以下步骤操作。 1)打开Chrome 2)单击右上角的扳手图标 3)转到工具 4)选择任务管理器。5)将会有一个名为“插件:Shockwave Flash”的条目。只有在当前浏览器会话期间(在任何一个选项卡/窗口上)使用了Flash时,它才会出现。这些步骤在Mac和Chrome 18上经过验证。 - Eric

2

查看生成的HTML代码最好的方法之一是使用Firefox或Chrome中的“Web开发者工具栏”(它是一个插件)。这样,您可以查看是否包括对象,并可能查看它是否是.swf文件或是否为Flash内容。 https://chrispederick.com/work/web-developer/


1

你想知道如何在客户端检测是否正在使用Flash吗?如果是的话,Flash有能力与JavaScript进行交互。这里有一个网站可以详细介绍这个。

https://www.permadi.com/tutorial/flashjscommand/

您可以在Flash插件启动时设置一些JavaScript变量,以确定Flash是否正在运行。


1
这是一个好主意,但对于我们无法编辑的第三方Flash代码无法起作用。 - Eric

0

Firefox的Firebig插件有一个“Net”选项卡,它可以显示加载页面所需的所有HTTP请求(包括任何Flash文件),您可以按文件类型进行分解,以仅显示Flash文件(请参见此处)。

还有一个名为flashbug的插件可用于Firebug:

https://mariani.life/projects/flashbug/


Flashbug已经停止更新并合并到Flash Firebug中。请访问https://addons.mozilla.org/en-US/firefox/addon/flashfirebug/。 - Eric

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接