<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>http://okaasantoneko.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-ReferenceTooltips.js</id>
	<title>MediaWiki:Gadget-ReferenceTooltips.js - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="http://okaasantoneko.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-ReferenceTooltips.js"/>
	<link rel="alternate" type="text/html" href="http://okaasantoneko.com/w/index.php?title=MediaWiki:Gadget-ReferenceTooltips.js&amp;action=history"/>
	<updated>2026-06-18T02:05:38Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://okaasantoneko.com/w/index.php?title=MediaWiki:Gadget-ReferenceTooltips.js&amp;diff=21&amp;oldid=prev</id>
		<title>Okaasantoneko: 1版 をインポートしました</title>
		<link rel="alternate" type="text/html" href="http://okaasantoneko.com/w/index.php?title=MediaWiki:Gadget-ReferenceTooltips.js&amp;diff=21&amp;oldid=prev"/>
		<updated>2019-09-05T17:06:56Z</updated>

		<summary type="html">&lt;p&gt;1版 をインポートしました&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;//  ________________________________________________________________________________________&lt;br /&gt;
// |																						|&lt;br /&gt;
// |					=== WARNING: GLOBAL GADGET FILE ===								 	|&lt;br /&gt;
// |				Changes to this page affect many users.									|&lt;br /&gt;
// | Please discuss changes on the talk page or on [[Wikipedia_talk:Gadget]] before editing.|&lt;br /&gt;
// |________________________________________________________________________________________|&lt;br /&gt;
//&lt;br /&gt;
// Imported from [[w:en:MediaWiki:Gadget-ReferenceTooltips.js]], the version as of 14:59, 29 October 2012 (UTC)&lt;br /&gt;
// Displays references in tooltips, see [[mw:Reference Tooltips]]&lt;br /&gt;
//  ________________________________________________________________________________________&lt;br /&gt;
// |																						|&lt;br /&gt;
// |					=== 注意 サイト全体に影響するファイルです ===						|&lt;br /&gt;
// |				このページを変更すると多数の利用者にその影響が及びます					|&lt;br /&gt;
// | 変更する前に[[Wikipedia‐ノート:ガジェット]] でよく議論し、動作テストを行ってください。	|&lt;br /&gt;
// |________________________________________________________________________________________|&lt;br /&gt;
//&lt;br /&gt;
// このガジェットは [[w:en:MediaWiki:Gadget-ReferenceTooltips.js]] から14:59, 29 October 2012 (UTC)に取り込んだものです。&lt;br /&gt;
// 脚注をツールチップ内に表示する、詳細は[[mw:Reference Tooltips]]を参照してください。&lt;br /&gt;
// &lt;br /&gt;
// メッセージは[[User:Marine-Blue]]が日本語化しました。&lt;br /&gt;
&lt;br /&gt;
window.pg || $(document).ready( function($) {&lt;br /&gt;
	&lt;br /&gt;
	function toggleRT(o){&lt;br /&gt;
		mw.loader.using(&amp;quot;jquery.cookie&amp;quot;,function(){&lt;br /&gt;
				$.cookie(&amp;quot;RTsettings&amp;quot;,o+&amp;quot;|&amp;quot;+ settings[1] + &amp;quot;|&amp;quot; + settings[2], {path:&amp;quot;/&amp;quot;,expires:90});&lt;br /&gt;
				location.reload();&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
	var settings = document.cookie.split(&amp;quot;RTsettings=&amp;quot;)[1];&lt;br /&gt;
	settings = settings ? settings.split(&amp;quot;;&amp;quot;)[0].split(&amp;quot;%7C&amp;quot;) : [1, 200, +(&amp;quot;ontouchstart&amp;quot; in document.documentElement)];&lt;br /&gt;
	if( settings[0] == 0 ) {&lt;br /&gt;
		var footer = $(&amp;quot;#footer-places, #f-list&amp;quot;);&lt;br /&gt;
		if( footer.length === 0 ) {&lt;br /&gt;
			footer = $(&amp;quot;#footer li&amp;quot;).parent();&lt;br /&gt;
		}&lt;br /&gt;
		footer.append($(&amp;quot;&amp;lt;li&amp;gt;&amp;quot;).append($(&amp;quot;&amp;lt;a&amp;gt;&amp;quot;).text(&amp;quot;脚注ツールチップを有効にする&amp;quot;).attr(&amp;quot;href&amp;quot;,&amp;quot;javascript:(function(){})()&amp;quot;).click(function(){toggleRT(1)})));&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	var isTouchscreen = +settings[2],&lt;br /&gt;
		timerLength = isTouchscreen ? 0 : +settings[1],&lt;br /&gt;
		settingsMenu;&lt;br /&gt;
	$(&amp;quot;.reference&amp;quot;).each( function() {&lt;br /&gt;
		var tooltipNode, hideTimer, showTimer, checkFlip = false;&lt;br /&gt;
		function findRef( h ){&lt;br /&gt;
			h = h.firstChild.getAttribute(&amp;quot;href&amp;quot;); h = h &amp;amp;&amp;amp; h.split(&amp;quot;#&amp;quot;); h = h &amp;amp;&amp;amp; h[1];&lt;br /&gt;
			h = h &amp;amp;&amp;amp; document.getElementById( h );&lt;br /&gt;
			h = h &amp;amp;&amp;amp; h.nodeName == &amp;quot;LI&amp;quot; &amp;amp;&amp;amp; h;&lt;br /&gt;
			return h;&lt;br /&gt;
		}&lt;br /&gt;
		function hide( refLink ){&lt;br /&gt;
			if( tooltipNode &amp;amp;&amp;amp; tooltipNode.parentNode == document.body ) {&lt;br /&gt;
					hideTimer = setTimeout( function() {&lt;br /&gt;
						$(tooltipNode).animate({opacity: 0}, 100, function(){ document.body.removeChild( tooltipNode ) });&lt;br /&gt;
					}, isTouchscreen ? 16 : 100);&lt;br /&gt;
				} else {&lt;br /&gt;
					var h = findRef( refLink );&lt;br /&gt;
					h &amp;amp;&amp;amp; (h.style.border = &amp;quot;&amp;quot;);&lt;br /&gt;
				}&lt;br /&gt;
		}&lt;br /&gt;
		function show(){&lt;br /&gt;
			if( !tooltipNode.parentNode || tooltipNode.parentNode.nodeType === 11 ){&lt;br /&gt;
				document.body.appendChild( tooltipNode );&lt;br /&gt;
				checkFlip = true;&lt;br /&gt;
			}&lt;br /&gt;
			$(tooltipNode).stop().animate({opacity: 1}, 100);&lt;br /&gt;
			clearTimeout( hideTimer );&lt;br /&gt;
		}&lt;br /&gt;
		function openSettingsMenu(){&lt;br /&gt;
			if( settingsMenu ) {&lt;br /&gt;
				settingsMenu.dialog( &amp;quot;open&amp;quot; );&lt;br /&gt;
			} else {&lt;br /&gt;
				settingsMenu = $(&amp;quot;&amp;lt;form&amp;gt;&amp;quot;).append(&lt;br /&gt;
					$(&amp;quot;&amp;lt;button&amp;gt;&amp;quot;).css(&amp;quot;width&amp;quot;,&amp;quot;100%&amp;quot;).text(&amp;quot;脚注ツールチップを無効にする&amp;quot;).button().click(function(){toggleRT(0)}),&lt;br /&gt;
					$(&amp;quot;&amp;lt;br&amp;gt;&amp;quot;),&lt;br /&gt;
					$(&amp;quot;&amp;lt;small&amp;gt;&amp;quot;).text(&amp;quot;ツールチップを一度無効にした場合、ページのフッターにあるリンクから再度有効に出来ます。&amp;quot;),&lt;br /&gt;
					$(&amp;quot;&amp;lt;hr&amp;gt;&amp;quot;),&lt;br /&gt;
					$(&amp;quot;&amp;lt;label&amp;gt;&amp;quot;).text(&amp;quot;ツールチップを表示するまでの秒数 (ミリ秒): &amp;quot;).append($(&amp;quot;&amp;lt;input&amp;gt;&amp;quot;).attr({&amp;quot;type&amp;quot;:&amp;quot;number&amp;quot;,&amp;quot;value&amp;quot;:settings[1],step:50,min:0,max:5000})),&lt;br /&gt;
					$(&amp;quot;&amp;lt;br&amp;gt;&amp;quot;),&lt;br /&gt;
					$(&amp;quot;&amp;lt;span&amp;gt;&amp;quot;).text(&amp;quot;ツールチップを表示するタイミング:&amp;quot;),&lt;br /&gt;
					$(&amp;quot;&amp;lt;label&amp;gt;&amp;quot;).append(&lt;br /&gt;
						$(&amp;quot;&amp;lt;input&amp;gt;&amp;quot;).attr({&amp;quot;type&amp;quot;:&amp;quot;radio&amp;quot;, &amp;quot;name&amp;quot;:&amp;quot;RTActivate&amp;quot;, &amp;quot;checked&amp;quot;:settings[2]==0&amp;amp;&amp;amp;&amp;quot;checked&amp;quot;, &amp;quot;disabled&amp;quot;:&amp;quot;ontouchstart&amp;quot; in document.documentElement&amp;amp;&amp;amp;&amp;quot;disabled&amp;quot;}),&lt;br /&gt;
						&amp;quot;マウスをかざしたとき&amp;quot;&lt;br /&gt;
					),&lt;br /&gt;
					$(&amp;quot;&amp;lt;label&amp;gt;&amp;quot;).append(&lt;br /&gt;
						$(&amp;quot;&amp;lt;input&amp;gt;&amp;quot;).attr({&amp;quot;type&amp;quot;:&amp;quot;radio&amp;quot;, &amp;quot;name&amp;quot;:&amp;quot;RTActivate&amp;quot;, &amp;quot;checked&amp;quot;:settings[2]==1&amp;amp;&amp;amp;&amp;quot;checked&amp;quot;}),&lt;br /&gt;
						&amp;quot;クリックしたとき&amp;quot;&lt;br /&gt;
					)&lt;br /&gt;
				).submit(function(e){e.preventDefault()}).dialog({modal:true,width:500,title:&amp;quot;脚注ツールチップの設定&amp;quot;,buttons:{&amp;quot;設定を保存する&amp;quot;:function(){&lt;br /&gt;
					var a = this.getElementsByTagName(&amp;quot;input&amp;quot;),&lt;br /&gt;
						b = +a[0].value;&lt;br /&gt;
					$.cookie(&amp;quot;RTsettings&amp;quot;,&amp;quot;1|&amp;quot;+ (b &amp;gt; -1 &amp;amp;&amp;amp; b &amp;lt; 5001 ? b : settings[1]) + (a[1].checked ? &amp;quot;|0&amp;quot; : &amp;quot;|1&amp;quot;), {path:&amp;quot;/&amp;quot;,expires:90});&lt;br /&gt;
					location.reload();&lt;br /&gt;
				}}});&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		$(this)[ isTouchscreen ? &amp;#039;click&amp;#039; : &amp;#039;hover&amp;#039; ](function( e ){&lt;br /&gt;
			var _this = this;&lt;br /&gt;
			if( isTouchscreen ) {&lt;br /&gt;
				e.preventDefault();&lt;br /&gt;
				(tooltipNode &amp;amp;&amp;amp; tooltipNode.parentNode == document.body) || setTimeout( function(){&lt;br /&gt;
					$( document.body ).on(&amp;quot;click touchstart&amp;quot;, function( e ) {&lt;br /&gt;
						e = e || event;&lt;br /&gt;
						e = e.target || e.srcElement;&lt;br /&gt;
						for( ; e &amp;amp;&amp;amp; !$( e ).hasClass( &amp;quot;referencetooltip&amp;quot; ) ; )&lt;br /&gt;
							e = e.parentNode;&lt;br /&gt;
						if( !e ){&lt;br /&gt;
							clearTimeout( showTimer );&lt;br /&gt;
							hide( _this );&lt;br /&gt;
							$(document.body).off(&amp;quot;click touchstart&amp;quot;, arguments.callee);&lt;br /&gt;
						}&lt;br /&gt;
					});&lt;br /&gt;
				}, 0);&lt;br /&gt;
			}&lt;br /&gt;
			showTimer &amp;amp;&amp;amp; clearTimeout( showTimer );&lt;br /&gt;
			showTimer = setTimeout( function() {&lt;br /&gt;
				var h = findRef( _this );&lt;br /&gt;
				if( !h ){return}&lt;br /&gt;
				if( !isTouchscreen &amp;amp;&amp;amp; ( window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0 ) + $(window).height() &amp;gt; $( h ).offset().top + h.offsetHeight ) {&lt;br /&gt;
					h.style.border = &amp;quot;#080086 2px solid&amp;quot;;&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
				if(!tooltipNode){&lt;br /&gt;
					tooltipNode = document.createElement(&amp;quot;ul&amp;quot;);&lt;br /&gt;
					tooltipNode.className = &amp;quot;referencetooltip&amp;quot;;&lt;br /&gt;
					var c = tooltipNode.appendChild( h.cloneNode( true ) );&lt;br /&gt;
					try {&lt;br /&gt;
						if( c.firstChild.nodeName != &amp;quot;A&amp;quot; ) {&lt;br /&gt;
							while( c.childNodes[1].nodeName == &amp;quot;A&amp;quot; &amp;amp;&amp;amp; c.childNodes[1].getAttribute( &amp;quot;href&amp;quot; ).indexOf(&amp;quot;#cite_ref-&amp;quot;) !== -1 ) {&lt;br /&gt;
								do { c.removeChild( c.childNodes[1] ) } while ( c.childNodes[1].nodeValue == &amp;quot; &amp;quot; );&lt;br /&gt;
							}&lt;br /&gt;
						}&lt;br /&gt;
					} catch (e) { mw.log(e) }&lt;br /&gt;
					c.removeChild( c.firstChild );&lt;br /&gt;
					$( tooltipNode.firstChild.insertBefore( document.createElement( &amp;quot;span&amp;quot; ), tooltipNode.firstChild.firstChild ) ).addClass(&amp;quot;RTsettings&amp;quot;).attr(&amp;quot;title&amp;quot;, &amp;quot;ツールチップの設定&amp;quot;).click(function(){&lt;br /&gt;
						mw.loader.using([&amp;quot;jquery.cookie&amp;quot;,&amp;quot;jquery.ui.dialog&amp;quot;], openSettingsMenu);&lt;br /&gt;
					});&lt;br /&gt;
					tooltipNode.appendChild( document.createElement( &amp;quot;li&amp;quot; ) );&lt;br /&gt;
					isTouchscreen || $(tooltipNode).hover(show, hide);&lt;br /&gt;
				}&lt;br /&gt;
				show();&lt;br /&gt;
				var o = $(_this).offset(), oH = tooltipNode.offsetHeight;&lt;br /&gt;
				$(tooltipNode).css({top: o.top - oH, left: o.left - 7 });&lt;br /&gt;
				if( tooltipNode.offsetHeight &amp;gt; oH ) { // is it squished against the right side of the page?&lt;br /&gt;
					$(tooltipNode).css({left:&amp;#039;auto&amp;#039;,right:0});&lt;br /&gt;
					tooltipNode.lastChild.style.marginLeft = (o.left - tooltipNode.offsetLeft) + &amp;quot;px&amp;quot;;&lt;br /&gt;
				}&lt;br /&gt;
				if( checkFlip ) {&lt;br /&gt;
					if( o.top &amp;lt; tooltipNode.offsetHeight + ( window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0 ) ) { // is part of it above the top of the screen?&lt;br /&gt;
						$(tooltipNode).addClass(&amp;quot;RTflipped&amp;quot;).css({top: o.top + 12});&lt;br /&gt;
					} else if( tooltipNode.className === &amp;quot;referencetooltip RTflipped&amp;quot; ) { // cancel previous&lt;br /&gt;
						$(tooltipNode).removeClass(&amp;quot;RTflipped&amp;quot;);&lt;br /&gt;
					}&lt;br /&gt;
					checkFlip = false;&lt;br /&gt;
				}&lt;br /&gt;
			}, timerLength);&lt;br /&gt;
		}, isTouchscreen ? undefined : function(){clearTimeout(showTimer); hide(this); } );&lt;br /&gt;
&lt;br /&gt;
	} );&lt;br /&gt;
	&lt;br /&gt;
} );&lt;/div&gt;</summary>
		<author><name>Okaasantoneko</name></author>
	</entry>
</feed>