vue3+ts+setup语法糖如何给iframe地图组件添加点击事件完整代码
时间: 2023-05-30 12:06:45 浏览: 335
以下是给iframe地图组件添加点击事件的完整代码:
```
<template>
<div class="map-container">
<iframe ref="map" src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3502.210327469921!2d-80.19080408538206!3d25.77426648366029!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x88d9b10c7d1e17c1%3A0xb0c7e8e067b8c1e3!2sAmericanAirlines%20Arena!5e0!3m2!1sen!2sus!4v1629385667076!5m2!1sen!2sus" width="600" height="450" style="border:0;" allowfullscreen="" loading="lazy"></iframe>
</div>
</template>
<script lang="ts">
import { defineComponent, onMounted } from 'vue';
export default defineComponent({
name: 'MapContainer',
setup() {
const handleClick = () => {
console.log('Map clicked');
};
onMounted(() => {
const map = document.querySelector('iframe');
map.contentWindow.document.addEventListener('click', handleClick);
});
},
});
</script>
<style scoped>
.map-container {
width: 600px;
height: 450px;
}
</style>
```
在这个例子中,我们使用了`onMounted`钩子来在组件挂载后添加点击事件。我们使用`document.querySelector`方法选择了iframe元素,并使用`contentWindow`属性来获取iframe内部文档的window对象。然后我们使用`addEventListener`方法添加了一个点击事件监听器。在事件处理程序中,我们可以执行任何我们希望在点击时发生的操作。在这个例子中,我们只是简单地在控制台中打印了一条消息。
阅读全文