diff options
Diffstat (limited to 'assets/js/pjax.js')
| -rw-r--r-- | assets/js/pjax.js | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/assets/js/pjax.js b/assets/js/pjax.js index 358c67b..9e832ad 100644 --- a/assets/js/pjax.js +++ b/assets/js/pjax.js @@ -184,7 +184,28 @@ $(document).on('pjax:error', function (xhr, textStatus, error) { console.warn('[pjax] error, fallback:', error); }); + $(document).on('pjax:end', function (event, xhr, options) { + var $container = $(options.container || PJAX_OPTS.container); + + $container.find('script[type="module"]').each(function () { + var oldScript = this; + var newScript = document.createElement('script'); + newScript.type = 'module'; + + // 如果是外链脚本 (<script src="..."></script>) + if (oldScript.src) { + newScript.src = oldScript.src; + } else { + // 如果是行内脚本 (<script>...code...</script>) + newScript.textContent = oldScript.textContent; + } + // 插入到 body 中触发浏览器执行 + document.body.appendChild(newScript); + // 运行完后建议移除,防止 DOM 变得混乱(不影响模块执行) + newScript.remove(); + }); + }); // 首次加载初始化 reinitCopyButtons(); }); |
