@@ -323,6 +323,20 @@ $(function () {
323323 var node = { "id" : res . data . doc_id , 'parent' : res . data . parent_id === 0 ? '#' : res . data . parent_id , "text" : res . data . doc_name , "identify" : res . data . identify , "version" : res . data . version } ;
324324 pushDocumentCategory ( node ) ;
325325 window . selectNode = node ;
326+ // 更新浏览器地址栏和预览链接
327+ var docIdentify = res . data . identify ;
328+ if ( docIdentify && window . history ) {
329+ var editBase = window . editURL . replace ( / \/ c o n t e n t \/ $ / , '/edit/' ) ;
330+ var newURL = editBase + docIdentify ;
331+ if ( window . _initialDocLoaded ) {
332+ history . pushState ( { docId : res . data . doc_id } , res . data . doc_name , newURL ) ;
333+ } else {
334+ history . replaceState ( { docId : res . data . doc_id } , res . data . doc_name , newURL ) ;
335+ window . _initialDocLoaded = true ;
336+ }
337+ var readBase = window . editURL . replace ( / \/ a p i \/ ( [ ^ / ] + ) \/ c o n t e n t \/ $ / , '/docs/$1/' ) ;
338+ $ ( 'a:has(i[name="preview-open"])' ) . attr ( 'href' , readBase + docIdentify ) ;
339+ }
326340 pushVueLists ( res . data . attach ) ;
327341 setLastSelectNode ( $node ) ;
328342 } else {
@@ -510,7 +524,7 @@ $(function () {
510524 "identify" : res . data . identify ,
511525 "version" : res . data . version ,
512526 state : { opened : res . data . is_open == 1 } ,
513- a_attr : { is_open : res . data . is_open == 1 }
527+ a_attr : { is_open : res . data . is_open == 1 , href : window . editURL . replace ( / \/ c o n t e n t \/ $ / , '/edit/' ) + res . data . identify }
514528 } ;
515529
516530 var node = window . treeCatalog . get_node ( data . id ) ;
@@ -535,6 +549,16 @@ $(function () {
535549 /**
536550 * 文档目录树
537551 */
552+ // 为目录树节点注入 href,使鼠标悬浮时浏览器状态栏显示对应编辑 URL
553+ ( function ( ) {
554+ var editBase = window . editURL . replace ( / \/ c o n t e n t \/ $ / , '/edit/' ) ;
555+ window . documentCategory . forEach ( function ( item ) {
556+ if ( item . identify && ! ( item . a_attr && item . a_attr . disabled ) ) {
557+ if ( ! item . a_attr ) item . a_attr = { } ;
558+ item . a_attr . href = editBase + item . identify ;
559+ }
560+ } ) ;
561+ } ( ) ) ;
538562 $ ( "#sidebar" ) . jstree ( {
539563 'plugins' : [ "wholerow" , "types" , 'dnd' , 'contextmenu' ] ,
540564 "types" : {
0 commit comments