ドキュメントライブラリのファイルがPDFだったら別窓で開く

ひさびさの更新になってしまいました。気が付けば、今年も残すところあと2か月、巷には早くもクリスマスのイルミが・・・という季節になってしまいました。早すぎるだろ。

さて、SharePoint2010のお話です。

ドキュメントライブラリでPDFを入れている場合、該当のファイル名をクリックするとブラウザの同じウィンドウ内で開いてしまいます。
(ブラウザでPDFを開く設定にしていれば、ですが。)
その時、うっかりタブを閉じたりすると元のライブラリに戻れなくなっちゃったりします。
地味に不便ですよね。

で、PDFファイルの場合だけ選択的に別窓で開かせるスクリプトを書いてみました。jQuery使ってます。

// これだとグルーピングしたビューではダメ
$('a[href$=".pdf"]').each(function(){
	$(this).removeAttr('onclick');
});
//無理やりだけど・・・
$(document).on('mouseover', 'a[href$=".pdf"]',
	function(eo) {
		$(eo.target).removeAttr('onclick');
	}
);
//クリックイベントを設定
$(document).on('click', 'a[href$=".pdf"]',
	function(eo) {
		window.open(eo.target.href, '_blank');
		return false;
   	}
);

ドキュメントライブラリのリストビューだと、クリック時 onclick属性に設定されてるファンクションが先に動いてしまうので、まずそいつを削除する、しかもmouseoverイベントで・・・という荒ワザをやっております。
こんなことしていいかよくわかりませんけど、よくない気もしますけど、もっといいやり方があったら教えていただけるとうれしいです。

また、グルーピングしたビューの場合アイテムが動的に追加されるため hoge.click(function… みたいな書き方は通用しません。
で、こちらなど参考にしつつ、
外部リンクを別窓で開くJavaScriptを改善した – rakugaki-box.net.
上記コードに落ち着きました。

リンクリストで、外部リンクは別窓で開かせたい!なんて場合にも応用できそうですね。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中