导入模块,并在同一html中的另一个脚本范围中使用它。

问题描述 投票:1回答:1

可以这么简单,但我找不到解决的方法。

我试图导入一个模块,并将其用于另一个 script html的范围。

html.index.html的范围。

<script type="module">
   import defineCustomIcons from './webapp/utils/customFonts.js'
</script>
<script>
    sap.ui.getCore().attachInit(function () {
        sap.ui.require([
        ], function () {
            defineCustomIcons(jQuery);
            // some other code
        });
    });
</script>

自定义字体.js

export default function defineCustomIcons(jQuery) {
  jQuery.sap.require('sap.ui.core.IconPool');
  sap.ui.core.IconPool.addIcon('sort_icon', 'customfont', 'icomoon', 'e900');
}

不幸的是,我不能在一个版本中使用所有的js。<script> 因为当时无法运行。有什么办法可以解决这个问题吗?

javascript html ecmascript-6 sapui5 ui5-tooling
1个回答
1
投票

这样就可以了。

  1. 将模块中的函数保存到 window 对象。
  2. 之后 window.onload该功能将在全球范围内使用。
//file module.js
export default function moduleApp () {
  console.log('this is moduleApp');
}
<script type="module">
  import moduleApp from './module.js';
  window.moduleApp = moduleApp;
</script>
<script>
  window.onload = () => {
    moduleApp();
  }
</script>
© www.soinside.com 2019 - 2024. All rights reserved.