我需要用eyedropper完成一个滴管。我的项目使用Vue2 + Ts,我的代码:
<div
v-if="haveEyeDropper"
@click="handleClickPick"
>
<i class="iconfont icon-xiguan"></i>
</div>
handleClickPick(): void {
const eyeDropper = new EyeDropper();
// ...
}
我收到错误“找不到名字‘滴管’。你的意思是‘滴管’吗?-Vetur‘和'EyeDropper’是没有定义的-eslint‘,但我复制MDN文档(https://developer.mozilla.org/en-US/docs/Web/API/EyeDropper)示例代码在index.html
中,它工作。
(我的浏览器是Chrome版105.0.5195.52)
发布于 2022-08-31 09:57:10
我想出了一个可行的计划,但不太标准。
我向index.html添加了以下代码:
<script>
if (!!window.EyeDropper) {
window.EyeDropperTarget = new EyeDropper();
}
</script>
我检查window.EyeDropper,如果有它,我在window
上挂载new EyeDropper()
示例。
然后我可以在商业代码中使用它:
handleClickPick(): void {
const picker = window.EyeDropperTarget;
picker.open().then((result: any) => {
const color = result?.sRGBHex;
// ...
});
}
发布于 2022-09-04 13:21:41
我的领导给了我一种标准的方法,并给出了折叠代码:
new example = (window as any).EyeDropper()
Vetur报告错误,因为: Esline无法识别的窗口新Api。
https://stackoverflow.com/questions/73553257
复制相似问题