summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.eslintrc.yaml2
-rw-r--r--web_src/js/index.js4
-rw-r--r--web_src/js/utils/dom.js8
3 files changed, 11 insertions, 3 deletions
diff --git a/.eslintrc.yaml b/.eslintrc.yaml
index a73df2ee34..2cde9d2aa5 100644
--- a/.eslintrc.yaml
+++ b/.eslintrc.yaml
@@ -164,7 +164,7 @@ rules:
jquery/no-parse-html: [2]
jquery/no-prop: [0]
jquery/no-proxy: [2]
- jquery/no-ready: [0]
+ jquery/no-ready: [2]
jquery/no-serialize: [2]
jquery/no-show: [2]
jquery/no-size: [2]
diff --git a/web_src/js/index.js b/web_src/js/index.js
index 80edc05480..839289e9d2 100644
--- a/web_src/js/index.js
+++ b/web_src/js/index.js
@@ -1,7 +1,6 @@
// bootstrap module must be the first one to be imported, it handles webpack lazy-loading and global errors
import './bootstrap.js';
-import $ from 'jquery';
import {initRepoActivityTopAuthorsChart} from './components/RepoActivityTopAuthors.vue';
import {initDashboardRepoList} from './components/DashboardRepoList.vue';
@@ -90,6 +89,7 @@ import {initCaptcha} from './features/captcha.js';
import {initRepositoryActionView} from './components/RepoActionView.vue';
import {initGlobalTooltips} from './modules/tippy.js';
import {initGiteaFomantic} from './modules/fomantic.js';
+import {onDomReady} from './utils/dom.js';
// Run time-critical code as soon as possible. This is safe to do because this
// script appears at the end of <body> and rendered HTML is accessible at that point.
@@ -98,7 +98,7 @@ initFormattingReplacements();
// Init Gitea's Fomantic settings
initGiteaFomantic();
-$(document).ready(() => {
+onDomReady(() => {
initGlobalCommon();
initGlobalTooltips();
diff --git a/web_src/js/utils/dom.js b/web_src/js/utils/dom.js
index d94d4cb092..80c9f01cf2 100644
--- a/web_src/js/utils/dom.js
+++ b/web_src/js/utils/dom.js
@@ -67,3 +67,11 @@ export function hideElem(el) {
export function toggleElem(el, force) {
elementsCall(el, toggleShown, force);
}
+
+export function onDomReady(cb) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', cb);
+ } else {
+ cb();
+ }
+}