none
Wikiページライブラリで「ホーム」の名前を変えたい RRS feed

  • 質問

  • SharePoint 2013 オンプレミスです

    Wiki ページライブラリのURLまで指定したとき、サイトコンテンツからWikiページライブラリにアクセスした等に最初に表示されるページは「ホーム」(ホーム.aspx)となっています。
    これを「ホーム」以外の名前のページにしたいのですが、どのようにしたらいいのかわからず困っています。
    それとも、「ホーム」以外にはできないもの(仕様)なのでしょうか。

    現在、サイト内に複数のWikiページライブラリを構築することを考えておりますが、どれを選択してもタイトルが「ホーム」となってしまうのではどれが表示中なのか分かりにくいことと、そもそもサイトのトップページと勘違いされることを懸念しておりまして。。

    2018年8月25日 8:52

すべての返信

  • 自己解決案です。

    試行錯誤している中で、下記の策にて所望のことができるようにはなりました。

    【方策】サイトのページ内に下記のようなWikiページライブラリのホームを変更するためのページを作成し、そこで変更をおこなう

    • ページ内に「スクリプトエディター」を追加し、下記のコードを挿入

    これにより、WikiページライブラリのURL(Site/SubSite/DocLib1/ 等)を指定した際に、「ホーム」(ホーム.aspx)以外のページを表示させることができるようになりました。

    【コード】

    <script type="text/javascript">
    function onClickChange() {
    	var lib_name = document.getElementById("frm_lib_name").value;
    	var page_name = document.getElementById("frm_page_name").value + ".aspx";
    
    	var ctx=new SP.ClientContext();
    	var list = ctx.get_web().get_lists().getByTitle(lib_name);
    	var rootFolder =list.get_rootFolder();
    	ctx.load(rootFolder);
    	ctx.executeQueryAsync(
    		function(){
    			var name_before = rootFolder.get_welcomePage() ;
    			rootFolder.set_welcomePage(page_name);
    			rootFolder.update();
    			ctx.load(rootFolder);
    			ctx.executeQueryAsync(
    				function(){
    					alert("[変更]\n現在 : " + name_before + 
    						"\n変更後:" + rootFolder.get_welcomePage());
    				},
    				function(){
    					alert("[変更]失敗しました2\nライブラリ名:" + lib_name + ", 変更名:" + page_name);
    				});
    		},
    		function(){
    			alert("[変更]失敗しました\nライブラリ名:" + lib_name);
    		});
    }
    
    function onClickConfirm() {
    	var lib_name = document.getElementById("frm_lib_name").value;
    
    	var ctx=new SP.ClientContext();
    	var list = ctx.get_web().get_lists().getByTitle(lib_name);
    	var rootFolder=list.get_rootFolder();
    	ctx.load(rootFolder);
    	ctx.executeQueryAsync(function(){
    		alert("[確認]\n現在の名前 : " + rootFolder.get_welcomePage());
    	},
    	function(){
    		alert("取得失敗");
    	});
    }
    </script>
    
    <div>
    Wikiライブラリ名:<input type="text" id="frm_lib_name"/><br />
    新しいWelcomePage:<input type="text" id="frm_page_name"/>.aspx<br />
    <input type="button" value="変更" onclick="javascript:onClickChange();"/>
    <input type="button" value="確認" onclick="javascript:onClickConfirm();"/>
    </div>
    

    しかし、これがスマートな正解であるとは思えない。。。わざわざコードを用意して変更しないとできないことなんでしょうか。
    「こうすればできますよ!」というのをご存知の方、おられましたらお教えいただけるとありがたいです。
    そのため、閉じずに引き続き回答を待ちたいと思います。

    2018年8月27日 5:46