gpt4 book ai didi

css - 如何在qooxdoo中动态加载CSS文件

转载 作者:行者123 更新时间:2023-12-02 02:22:14 25 4
gpt4 key购买 nike

是否有一个特殊的qooxdoo类来动态加载CSS文件,例如qx.util.DynamicScriptLoader JavaScript 文件有什么作用?

例如,取决于用户选择他想要使用什么地理 map ,应用程序会加载特定的 JavaScript 和 CSS 文件。我可以得到.js文件通过 qx.util.DynamicScriptLoader类,但对于 css 我使用 externalResources Manifest.json 中的部分文件总是加载样式文件(我说得对吗?)。

最佳答案

包含 css 文件的动态可能性,例如在类的构造函数中,使用 qx.bom.Stylesheet.includeFile ,如下所示:

qx.bom.Stylesheet.includeFile("https://myserver.com/my.css");

通过这种方式,我成功地为包/框架构建了完全动态的包装器,其中所有外部资源仅在包装器类实例化时与 qx.util.DynamicScriptLoader 结合加载。

如果 css 文件位于您的元素资源中,则必须对资源名称调用 qx.util.ResourceManager.getInstance().toUri() 并将其输入到 qx .bom.Stylesheet.includeFile.

假设您的元素中有一个 css 文件,位于 resource/myframework/my.css 中,您必须首先在包装类中创建一个像这样的 @asset 提示:

/*
* @asset(myframework/my.css)
*/

然后,例如在您调用的构造函数中:

  qx.bom.Stylesheet.includeFile(qx.util.ResourceManager.getInstance().toUri(
"resource/myframework/my.css"
));

为了避免多次加载css文件,我在包装类中添加了一个静态类成员CSS_INCLUDED,初始化为false,然后在调用qx后设置为true。 bom.Stylesheet.includeFile 产生以下代码:

  if(my.wrapper.CSS_INCLUDED === false) {
qx.bom.Stylesheet.includeFile(qx.util.ResourceManager.getInstance().toUri(
"resource/myframework/my.css"
));
my.wrapper.CSS_INCLUDED = true;
}

这样后续实例化就不会再次加载 css 文件。

关于css - 如何在qooxdoo中动态加载CSS文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66223348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com