我的公司在整个网站上都使用 Flash。如果浏览器不支持 HTML5,我们想升级到 HTML5,同时继续使用 Flash。Flash 是使用 Google Swiffy 转换的。
我尝试了很多解决方案,但它们太复杂了。这是我目前的想法:我在statement中新建了一个Audio对象try/catch
,所以如果浏览器支持它,它会打印Google Swiffy翻译的HTML5代码,但是如果它跳转到catch
statement中,则意味着浏览器不支持HTML5,我将使用旧代码。这是我的代码:
try {
new Audio();
// Google Swiffy code here
} catch (er) {
// Use many lines of "document.write" for old Flash code
// Many lines for Flash code
}
但是,我无法将 Swiffy 运行时导入代码,因为不支持的浏览器会抱怨运行时脚本,并且它会立即卡住。所以我改变了我的代码,像这样手动导入脚本,但我不知道为什么它不起作用:
try {
new Audio();
var js = document.createElement("script");
js.onload = function() {
document.body.appendChild(js);
// Google Swiffy code here
}
js.type = "text/javascript";
js.src = "https://www.gstatic.com/swiffy/v5.2/runtime.js";
} catch (er) {
alert(er);
<!--
displayFlash('abc.swf', 420, 450);
//-->
document.write("<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http:\/\/fpdownload.macromedia.com\/pub\/shockwave\/cabs\/flash\/swflash.cab#version=6,0,0,0\" width=\"420\" height=\"450\" align=\"middle\"><param name=\"allowScriptAccess\" value=\"always\"><param name=\"movie\" value=\"..\/..\/images\/thap_deluxe.swf\"><param name=\"wmode\" value=\"transparent\"><param name=\"quality\" value=\"high\"><embed src=\"..\/..\/images\/thap_deluxe.swf\" wmode=\"transparent\" menu=\"false\" quality=\"high\" width=\"420\" height=\"450\" allowscriptaccess=\"always\" type=\"application\/x-shockwave-flash\" pluginspage=\"http:\/\/www.macromedia.com\/go\/getflashplayer\"><\/object>");
}
请建议我任何更好的解决方案,或者请教我如何使用当前解决方案解决问题。谢谢你。