我正在使用Angular 7及其CLI在网站上开发一个小型page/router component
。在某一时刻,我需要检查用户是否允许闪光,我这样做是
checkFlash() {
var hasFlash = false;
try {
hasFlash = Boolean(new ActiveXObject("ShockwaveFlash.ShockwaveFlash"));
} catch (exception) {
hasFlash = "undefined" != typeof navigator.mimeTypes["application/x-shockwave-flash"];
}
return hasFlash;
}
我在here上找到了它,并且效果很好,但是现在在清理应用程序时,我注意到Angular似乎并不喜欢这个,实际上,它说{{1} }尚未定义,但仍然有效。
超级困惑...
我尝试链接像ActiveXObject
或$('embed[type="application/x-shockwave-flash"]')
这样的实际Flash对象,但是没有运气,它总是返回true。
我尝试安装额外的$('embed[type="application/x-shockwave-flash"]')[0]
,包括npm
和activex-support
以及它们的activex-data-support
表亲。设置好它们之后,我发现它们没有帮助我的情况。
以下是
@types
和CLI
-VScode
给我的确切错误:
Intellisense
[ts] 'ActiveXObject' only refers to a type, but is being used as a value here. [2693]
any
在纯JS内运行时不会引发此错误,但是我环顾四周,似乎无法弄清楚如何在ERROR in src/app/games/games.component.ts(51,30): error TS2304: Cannot find name 'ActiveXObject'.
内运行pure JS
。看上去也没有运气的here。
请帮助,在这里完全迷路了。
编辑:找到了解决方法-> 答案是here列在评论中(需要进行一些小的更改)(如下所示)
- 更改自:
Angular 2 (7)
- 至:
checkFlash() {
var hasFlash = false;
try {
hasFlash = Boolean(new ActiveXObject("ShockwaveFlash.ShockwaveFlash"));
} catch (exception) {
hasFlash = "undefined" != typeof navigator.mimeTypes["application/x-
shockwave-flash"];
}
return hasFlash;
}
答案 0 :(得分:0)
答案在此处列在评论中(需要进行一些小的更改)(如下所示)
更改自:
checkFlash() {
var hasFlash = false;
try {
hasFlash = Boolean(new ActiveXObject("ShockwaveFlash.ShockwaveFlash"));
} catch (exception) {
hasFlash = "undefined" != typeof navigator.mimeTypes["application/x-
shockwave-flash"];
}
return hasFlash;
}
收件人:
function checkFlash() {
var hasFlash = false;
try {
var flash =
navigator.mimeTypes &&
navigator.mimeTypes["application/x-shockwave-flash"]
? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin
: 0;
if (flash) hasFlash = true;
} catch (e) {
if (navigator.mimeTypes["application/x-shockwave-flash"] != undefined)
hasFlash = true;
}
return hasFlash;
}
答案 1 :(得分:0)
ActiveXObject 的此问题可以通过以下方法解决: 转到您的 tsconfig.json 文件,然后添加“ scripthost ”库。 然后重新编译您的应用程序。
"lib": [
"es2017",
"dom",
"scripthost"
]