浏览器 在script type=“module“模式下的 按钮事件触发

解决: 如何让浏览器模块脚本"module" 中的方法 ,被按钮访问到

方法1 把事件付给 window对象

原因是<script type="module" >模块会自动延迟加载 
也就是会晚于 普通的<script>	而且只加载一次, 
所以 按钮无法访问到 
<script type="module" >
		import HylAudio from './hylaudio.js';
		...
		//可以被访问
		window.recordStart = function() { HylAudio .recordStart();	};
		//record() 函数无法被访问	
		function record () { HylAudio .recordStart();	};
		...
</script>
...
<button onclick="recordStart()">开始录制</button>
<button onclick="record ()">开始录制</button>
...

方法二 后绑定事件

利用 module 加载滞后的特点
使用 document.getElementById(“bt_start”).οnclick= 事件 写法 ,后绑定事件

<script type="module" >
	function recordStart() { HylAudio .recordStart();	};
	document.getElementById("bt_start").onclick=recordStart;
</script>

方法三

在 script type=“module” 中 , 利用vue 的框架 简化绑定代码
原理同方法2

<script type="module" > 
import ....;
....
let options={}
Vue.createApp(options).mount('#app');
....
</script>
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: script type=moduleHTML5中的一种脚本类型,用于指定一个JavaScript模块。它可以让开发者在浏览器中使用ES6模块化语法,实现更加模块化、可维护的代码。同时,它也支持异步加载模块,提高了页面的加载速度和性能。 ### 回答2: script type=module是一种在HTML中用于加载以模块化方式编写的JavaScript代码的语法。它是ES6中新增的一项特性,旨在优化JavaScript的模块化管理机制。 相比于传统的script标签加载方式,script type=module可以让开发者以更加清晰、模块化的方式组织自己的代码,避免了全局命名空间的污染。此外,使用type=module还可以自动地解决依赖关系,让模块之间的依赖关系更加清晰明了。 在使用script type=module时,需要注意以下几点: 1. 必须使用完整的路径或URL加载模块,不能使用相对路径或根路径。这是由于模块之间的依赖关系需要在加载时就确定下来,因此必须使用明确的路径或URL来标识模块的位置。 2. 加载模块时会自动创建一个独立的作用域,模块中定义的变量、函数等不会被自动添加到全局作用域中。如果要在模块外部使用模块中的内容,需要使用export关键字将它们暴露出来。 3. 模块中定义的变量、函数等都是只读的,不能被外部修改。如果需要修改,可以通过export和import等关键字进行显式传递和修改。 4. script type=module必须在浏览器支持的情况下才能正常工作。目前,主流浏览器都已经支持了该特性,但是在一些较老的浏览器中可能无法使用。 总之,script type=module是一个十分有用的特性,可以极大地优化JavaScript的模块化管理机制。在使用时,需要注意以上几个细节,以确保代码的正确性和可维护性。 ### 回答3: script type=module是一种HTML标记中的属性,它代表着该脚本文件是ECMAScript的模块化脚本。这种脚本类型是在ECMAScript 6中引入的,主要目的是为了解决JavaScript在编写大型应用程序时所遇到的模块管理问题。 模块化脚本可以将代码分割成多个独立文件,在需要时再动态加载,避免了代码冗余和相互干扰。借助模块化脚本,你可以将一个应用程序分成若干个代码块,在必要的时候让浏览器进行模块加载,同时也可以减小文件的体积,提高网站的加载速度。 当你在HTML文档中使用script type=module时,它会自动开启JavaScript的严格模式,这意味着你必须遵循ECMAScript 6标准的语法规则,对变量的声明、函数等必须严格遵守规范。 此外,使用script type=module还可以实现跨域请求资源,即使在不同的域名、协议和端口,模块化脚本仍可以进行加载,使得网站跨域请求的问题得到了很好的解决。尽管目前IE浏览器不支持这个特性,但是Chrome、Firefox和Safari等主流浏览器已经提供了对script type=module的支持。 熟练掌握script type=module的使用方法,可以为前端开发提供更加便捷、行之有效的模块化管理手段,让你的web应用更加高效、可维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值