<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://ejwiki.org/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AWordwikify.js</id>
	<title>MediaWiki:Wordwikify.js - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://ejwiki.org/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AWordwikify.js"/>
	<link rel="alternate" type="text/html" href="https://ejwiki.org/index.php?title=MediaWiki:Wordwikify.js&amp;action=history"/>
	<updated>2026-05-14T13:37:28Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://ejwiki.org/index.php?title=MediaWiki:Wordwikify.js&amp;diff=390446&amp;oldid=prev</id>
		<title>Ariely: Новая страница: «//Создание викиссылки из слова, на котором находится курсор //Автор: X-romix   var XRomix_WordWikify_CantWork =…»</title>
		<link rel="alternate" type="text/html" href="https://ejwiki.org/index.php?title=MediaWiki:Wordwikify.js&amp;diff=390446&amp;oldid=prev"/>
		<updated>2010-04-11T04:51:19Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «//Создание викиссылки из слова, на котором находится курсор //Автор: X-romix   var XRomix_WordWikify_CantWork =…»&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 04:51, 11 апреля 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Ariely</name></author>
	</entry>
	<entry>
		<id>https://ejwiki.org/index.php?title=MediaWiki:Wordwikify.js&amp;diff=21671&amp;oldid=prev</id>
		<title>Ariely: Новая страница: «//Создание викиссылки из слова, на котором находится курсор //Автор: X-romix   var XRomix_WordWikify_CantWork =…»</title>
		<link rel="alternate" type="text/html" href="https://ejwiki.org/index.php?title=MediaWiki:Wordwikify.js&amp;diff=21671&amp;oldid=prev"/>
		<updated>2010-01-28T18:10:37Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «//Создание викиссылки из слова, на котором находится курсор //Автор: X-romix   var XRomix_WordWikify_CantWork =…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;//Создание викиссылки из слова, на котором находится курсор&lt;br /&gt;
//Автор: X-romix&lt;br /&gt;
 &lt;br /&gt;
var XRomix_WordWikify_CantWork = &amp;#039;Скрипт WordWikify не может работать в вашем браузере.\n\Script WordWikify cannot work in your browser&amp;#039; // английский текст для тех, кто не видит русские буквы&lt;br /&gt;
var XRomix_WordWikify_FullText = &amp;#039;Эта кнопка предназначена для викификации выделенного слова. Выберите фрагмент текста.&amp;#039;;&lt;br /&gt;
 &lt;br /&gt;
//Добавляет кнопку&lt;br /&gt;
function add_XRomix_WordWikify_Button(){&lt;br /&gt;
	var toolbar = document.getElementById(&amp;#039;toolbar&amp;#039;)&lt;br /&gt;
	var textbox = document.getElementById(&amp;#039;wpTextbox1&amp;#039;)&lt;br /&gt;
	if (!textbox || !toolbar) return&lt;br /&gt;
	var i = document.createElement(&amp;#039;img&amp;#039;)&lt;br /&gt;
	i.src = &amp;#039;http://upload.wikimedia.org/wikipedia/ru/c/c1/Button-Found.PNG&amp;#039;&lt;br /&gt;
	//i.src = &amp;#039;http://upload.wikimedia.org/wikipedia/ru/7/75/Button-Test.PNG&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	i.alt = i.title = &amp;#039;Викификация слова&amp;#039;&lt;br /&gt;
	i.onclick = XRomix_WordWikify&lt;br /&gt;
	i.style.cursor = &amp;#039;pointer&amp;#039;&lt;br /&gt;
	toolbar.appendChild(i)&lt;br /&gt;
 &lt;br /&gt;
} &lt;br /&gt;
 &lt;br /&gt;
//Этот код выполняется в начале.&lt;br /&gt;
if (wgAction == &amp;#039;edit&amp;#039; || wgAction == &amp;#039;submit&amp;#039;){&lt;br /&gt;
  addOnloadHook(add_XRomix_WordWikify_Button)&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
//Функция по преобразованию текста&lt;br /&gt;
function XRomix_WordWikify(){&lt;br /&gt;
 //Проверяем, поддерживает ли браузер регулярные выражения (RegExp)	&lt;br /&gt;
 if ((&amp;#039;code&amp;#039;.replace(/d/g, &amp;#039;r&amp;#039;) != &amp;#039;core&amp;#039;) &lt;br /&gt;
    || (navigator.appName==&amp;#039;Netscape&amp;#039; &amp;amp;&amp;amp; navigator.appVersion.substr (0, 1) &amp;lt; 5))&lt;br /&gt;
  { alert(XRomix_RefConv2_CantWork); return }&lt;br /&gt;
 &lt;br /&gt;
 var txt, hidden = [], hidIdx = 0, wpTextbox1 = document.editform.wpTextbox1&lt;br /&gt;
 &lt;br /&gt;
 wpTextbox1.focus();&lt;br /&gt;
 &lt;br /&gt;
 var winScroll=getScrollTop(wpTextbox1)//remember window scroll&lt;br /&gt;
 var startPos = getSelectionStart(wpTextbox1) &lt;br /&gt;
 var startPos1 = startPos;&lt;br /&gt;
 var endPos = startPos+getSelectionLength(wpTextbox1)&lt;br /&gt;
 &lt;br /&gt;
 if (startPos==-2)&lt;br /&gt;
 // Для браузеров, которые не умеют возвращать выделенный фрагмент, выдаем ошибку&lt;br /&gt;
   { alert(XRomix_RefConv2_CantWork); return }&lt;br /&gt;
 &lt;br /&gt;
    var str=wpTextbox1.value;&lt;br /&gt;
	if (startPos==endPos){&lt;br /&gt;
	  &lt;br /&gt;
	  &lt;br /&gt;
	  while (1==1){&lt;br /&gt;
		if (startPos==0) break;&lt;br /&gt;
		startPos--;&lt;br /&gt;
		var ch = str.charAt(startPos);&lt;br /&gt;
		if (!ch.match(/[a-zA-Zа-яА-Я0-9Ёё]/)){&lt;br /&gt;
		  startPos++;&lt;br /&gt;
		  break;&lt;br /&gt;
		}&lt;br /&gt;
	  }&lt;br /&gt;
	  var str1= str.substr(startPos);&lt;br /&gt;
	  endPos=str1.search(/[^a-zA-Zа-яА-Я0-9Ёё]/);&lt;br /&gt;
	  if (endPos==-1) {endPos=startPos}&lt;br /&gt;
	  else{endPos=endPos+startPos} &lt;br /&gt;
	  &lt;br /&gt;
	  if(endPos&amp;lt;=startPos1){&lt;br /&gt;
	    alert(&amp;#039;В текущей позиции курсора не найдено слово или число&amp;#039;);&lt;br /&gt;
		return;&lt;br /&gt;
	  }&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	//alert(&amp;quot;+++&amp;quot;+startPos+&amp;quot; &amp;quot;+endPos);&lt;br /&gt;
	&lt;br /&gt;
    txt = str.substring(startPos, endPos)&lt;br /&gt;
    if (txt == &amp;#039;&amp;#039;) {alert(XRomix_RefConv2_FullText); return}&lt;br /&gt;
    else{&lt;br /&gt;
	  processText()&lt;br /&gt;
	  &lt;br /&gt;
      wpTextbox1.value = wpTextbox1.value.substring(0, startPos) + txt + wpTextbox1.value.substring(endPos)&lt;br /&gt;
    }&lt;br /&gt;
	&lt;br /&gt;
	setSelectionRange(wpTextbox1, startPos, startPos + txt.length)&lt;br /&gt;
 &lt;br /&gt;
	setScrollTop(wpTextbox1, winScroll)//scroll back&lt;br /&gt;
 &lt;br /&gt;
//Здесь производим замену в переменной txt - это отразится на выделенном фрагменте текста &lt;br /&gt;
function processText(){&lt;br /&gt;
      var searchInput=document.getElementById(&amp;#039;searchInput&amp;#039;);&lt;br /&gt;
	  txt=&amp;quot;[[&amp;quot;+searchInput.value+&amp;quot;|&amp;quot;+txt+&amp;quot;]]&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//подсчитывает концы строк в фрагменте текста&lt;br /&gt;
function countCrlf(str){&lt;br /&gt;
  var cnt=0;&lt;br /&gt;
  for(var i=0; i&amp;lt;str.length; i++){&lt;br /&gt;
    var c=str.charCodeAt(i);&lt;br /&gt;
	if (c==13){&lt;br /&gt;
	  cnt++;&lt;br /&gt;
	}&lt;br /&gt;
  }&lt;br /&gt;
  return cnt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Браузеро-независимый setSelectionRange - изменяет начало и конец&lt;br /&gt;
//выделенного фрагмента в поле ввода input&lt;br /&gt;
function setSelectionRange(input, start, end) {&lt;br /&gt;
  if (typeof wpTextbox1.selectionStart != &amp;#039;undefined&amp;#039; &lt;br /&gt;
    &amp;amp;&amp;amp; (navigator.productSub &amp;gt; 20031000 || is_safari)) { &lt;br /&gt;
	//Mozilla/Opera/Safari3&lt;br /&gt;
	input.setSelectionRange(start, end);&lt;br /&gt;
  }else if (document.selection &amp;amp;&amp;amp; document.selection.createRange) { &lt;br /&gt;
 	 //Internet Explorer&lt;br /&gt;
		var range = input.createTextRange();&lt;br /&gt;
		range.collapse(true);&lt;br /&gt;
		range.moveStart(&amp;quot;character&amp;quot;, start - countCrlf(input.value.substring(0, start)));&lt;br /&gt;
		range.moveEnd(&amp;quot;character&amp;quot;, end - start - countCrlf(input.value.substring(start, end)));&lt;br /&gt;
		range.select();&lt;br /&gt;
  }	 &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
//Браузеро-независимое получение длины&lt;br /&gt;
//выделенного фрагмента в поле ввода input&lt;br /&gt;
function getSelectionLength(input) {&lt;br /&gt;
  if (typeof wpTextbox1.selectionStart != &amp;#039;undefined&amp;#039; &lt;br /&gt;
    &amp;amp;&amp;amp; (navigator.productSub &amp;gt; 20031000 || is_safari)) { &lt;br /&gt;
	//Mozilla/Opera/Safari3&lt;br /&gt;
	return input.selectionEnd-input.selectionStart;&lt;br /&gt;
  }else if (document.selection &amp;amp;&amp;amp; document.selection.createRange) { &lt;br /&gt;
 	 //Internet Explorer&lt;br /&gt;
	 input.focus()&lt;br /&gt;
	 var range = document.selection.createRange()&lt;br /&gt;
	 return range.text.length&lt;br /&gt;
  }	else &lt;br /&gt;
     return -2;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
//Браузеро-независимый getSelectionStart - возвращает позицию начала &lt;br /&gt;
//выделенного фрагмента в поле ввода input, или позицию курсора в поле ввода&lt;br /&gt;
function getSelectionStart(input) {&lt;br /&gt;
  if (typeof wpTextbox1.selectionStart != &amp;#039;undefined&amp;#039; &lt;br /&gt;
    &amp;amp;&amp;amp; (navigator.productSub &amp;gt; 20031000 || is_safari)) { &lt;br /&gt;
	//Mozilla/Opera/Safari3&lt;br /&gt;
	return input.selectionStart;&lt;br /&gt;
  }else if (document.selection &amp;amp;&amp;amp; document.selection.createRange) { &lt;br /&gt;
 	 //Internet Explorer&lt;br /&gt;
	 input.focus()&lt;br /&gt;
	 //return Math.abs(document.selection.createRange().moveStart(&amp;quot;character&amp;quot;, -1000000));&lt;br /&gt;
&lt;br /&gt;
	 &lt;br /&gt;
	var temp = input.value; &lt;br /&gt;
	input.focus()&lt;br /&gt;
	var range = document.selection.createRange()&lt;br /&gt;
	var length = range.text.length &lt;br /&gt;
    var txt = range.text&lt;br /&gt;
    range.text=&amp;quot;{50E9CD6A-BC3E-4B44-9107-FFF6A65DC28E}&amp;quot; //фтыкаем гуид чтобы найти положение курсора в IE&lt;br /&gt;
	 //Статья http://www.bazon.net/mishoo/articles.epl?art_id=1292 &lt;br /&gt;
	 //рекомендует фтыкать тильду, но гуид лучше, потому что он гарантированно не встретится в тексте&lt;br /&gt;
	 var vv=input.value;&lt;br /&gt;
	 var startPos = vv.search(&amp;quot;{50E9CD6A-BC3E-4B44-9107-FFF6A65DC28E}&amp;quot;) //ищем этот гуид&lt;br /&gt;
	 input.value=temp //восстанавливаем текст, который был в поле ввода&lt;br /&gt;
	 setSelectionRange(input, startPos, startPos+length) //восстанавливаем выделение&lt;br /&gt;
	 return startPos&lt;br /&gt;
	 &lt;br /&gt;
  }	else &lt;br /&gt;
     return -2;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Браузеро-независимый getScrollTop - возвращает позицию прокрутки&lt;br /&gt;
//в поле ввода input&lt;br /&gt;
function getScrollTop(input) {&lt;br /&gt;
  if (typeof wpTextbox1.selectionStart != &amp;#039;undefined&amp;#039; &lt;br /&gt;
    &amp;amp;&amp;amp; (navigator.productSub &amp;gt; 20031000 || is_safari)) { &lt;br /&gt;
	//Mozilla/Opera/Safari3&lt;br /&gt;
	return input.scrollTop&lt;br /&gt;
  }else if (document.selection &amp;amp;&amp;amp; document.selection.createRange) { &lt;br /&gt;
 	 //Internet Explorer&lt;br /&gt;
	input.focus()&lt;br /&gt;
	return document.documentElement.scrollTop&lt;br /&gt;
  }	else &lt;br /&gt;
     return -2;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
//Браузеро-независимый setScrollTop - устанавливает позицию прокрутки&lt;br /&gt;
//в поле ввода input&lt;br /&gt;
function setScrollTop(input, top) {&lt;br /&gt;
  if (typeof wpTextbox1.selectionStart != &amp;#039;undefined&amp;#039; &lt;br /&gt;
    &amp;amp;&amp;amp; (navigator.productSub &amp;gt; 20031000 || is_safari)) { &lt;br /&gt;
	//Mozilla/Opera/Safari3&lt;br /&gt;
	input.scrollTop=top&lt;br /&gt;
  }else if (document.selection &amp;amp;&amp;amp; document.selection.createRange) { &lt;br /&gt;
 	 //Internet Explorer&lt;br /&gt;
	input.focus()&lt;br /&gt;
	document.documentElement.scrollTop=top&lt;br /&gt;
  }&lt;br /&gt;
};&lt;br /&gt;
	&lt;br /&gt;
 &lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Ariely</name></author>
	</entry>
</feed>