|
209 | 209 | <div class="content-wrapper"> |
210 | 210 | <div class="content"> |
211 | 211 | <div class="article-header"> |
212 | | - <div class="version-selector"> |
213 | | - <select onchange="location = this.value;"> |
| 212 | + <div> |
| 213 | + <select id="version-selector"> |
214 | 214 | @foreach($document->versions as $ver) |
215 | | - <option value="{{ route('articles.show', ['document_slug' => $document->slug, 'version' => $ver->version_number, 'article_slug' => $article->slug, 'article_id' => $articleItem->id]) }}" {{ $ver->version_number == $version->version_number ? 'selected' : '' }}> |
| 215 | + <option value="{{ $ver->version_number }}" {{ $ver->version_number == $version->version_number ? 'selected' : '' }}> |
216 | 216 | {{ $ver->version_number }} |
217 | 217 | </option> |
218 | 218 | @endforeach |
|
247 | 247 | <script src="{{ asset('js/editormd.min.js') }}"></script> |
248 | 248 | <script src="{{ asset('js/lightbox.min.js') }}"></script> |
249 | 249 | <script> |
| 250 | + $(document).ready(function() { |
| 251 | + let lastVersion = $('#version-selector').val(); // 初始化时存储当前选中的版本号 |
| 252 | +
|
| 253 | + $('#version-selector').on('focus', function () { |
| 254 | + // 在下拉菜单获得焦点时记录当前的值 |
| 255 | + lastVersion = $(this).val(); |
| 256 | + }).change(function() { |
| 257 | + const newVersion = $(this).val(); // 获取新选中的版本号 |
| 258 | + updateArticleLink(newVersion, lastVersion); // 调用函数,并传递当前选择和上次选择 |
| 259 | + }); |
| 260 | +
|
| 261 | + function updateArticleLink(newVersion, lastVersion) { |
| 262 | + const documentSlug = '{{ $document->slug }}'; |
| 263 | + const articleSlug = '{{ $article->slug }}'; |
| 264 | + const chapterId = '{{ $article->chapter_id }}'; |
| 265 | +
|
| 266 | + // 检查 chapterId 是否存在,如果不存在或为空,则使用不同的 URL |
| 267 | + const url = chapterId ? |
| 268 | + `/documents/${documentSlug}/${newVersion}/${chapterId}/find-article/${articleSlug}` : |
| 269 | + `/documents/${documentSlug}/${newVersion}/find-article/${articleSlug}`; |
| 270 | +
|
| 271 | + $.get(url, function(data) { |
| 272 | + if (data.success) { |
| 273 | + const newLink = `/documents/${documentSlug}/${newVersion}/articles/${articleSlug}/${data.article_id}`; |
| 274 | + window.location.href = newLink; |
| 275 | + // 请求成功后更新 lastVersion |
| 276 | + $('#version-selector').data('last', newVersion); |
| 277 | + } else { |
| 278 | + alert(data.message); |
| 279 | + $('#version-selector').val(lastVersion); // 请求失败时,恢复原来的选择 |
| 280 | + } |
| 281 | + }).fail(function() { |
| 282 | + alert('该版本对应文章没有找到!'); |
| 283 | + $('#version-selector').val(lastVersion); // 网络请求本身失败也恢复原来的选择 |
| 284 | + }); |
| 285 | + } |
| 286 | + }); |
250 | 287 | $(function() { |
251 | 288 | editormd.markdownToHTML("article-content", { |
252 | 289 | htmlDecode: "style,script,iframe", |
@@ -357,6 +394,7 @@ function getArticleUrlByIndex(baseUrl, documentName, version, chapterId, article |
357 | 394 | window.scrollToTop = function() { |
358 | 395 | $("html, body").animate({ scrollTop: 0 }, 500); |
359 | 396 | } |
| 397 | +
|
360 | 398 | }); |
361 | 399 | </script> |
362 | 400 | </body> |
|
0 commit comments