我正在尝试在使用 hyperHTML 时有条件地动态加载其他 JavaScript。我已将失败范围缩小到onload
事件。
这是一个最小、完整和可验证的示例的尝试:
class ScriptLoader extends hyperHTML.Component {
onload(event) {
notie.alert({ text: "notie loaded" });
}
render() {
return this.html`
<script
src=https://unpkg.com/notie
type=text/javascript
async=false
onload=${this}
/>
`;
}
}
hyperHTML.bind(document.body)`
<h2>onload test (notie)</h2>
${new ScriptLoader}
`;
<script src="https://unpkg.com/hyperhtml@2.4.0/min.js"></script>
如您所见notie.alert
,即使script
正确插入,也永远不会调用它。
这个过程使用带有addEventListener('load',
and的 vanilla JS 可以正常工作appendChild(
。