<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; JS (ie): похоже перестал работать код ...selection.createRange().text]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=12891</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=12891&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «JS (ie): похоже перестал работать код ...selection.createRange().text».]]></description>
		<lastBuildDate>Wed, 09 Aug 2017 06:09:03 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: JS (ie): похоже перестал работать код ...selection.createRange().text]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=118002#p118002</link>
			<description><![CDATA[<p>Понял, спасибо большое!</p>]]></description>
			<author><![CDATA[null@example.com (Rom5)]]></author>
			<pubDate>Wed, 09 Aug 2017 06:09:03 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=118002#p118002</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS (ie): похоже перестал работать код ...selection.createRange().text]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=117997#p117997</link>
			<description><![CDATA[<p>Возможно, причина в этом:<br /></p><div class="quotebox"><cite>MSDN пишет:</cite><blockquote><p>selection object</p><p>[<a href="https://msdn.microsoft.com/en-us/library/ms535869(v=vs.85).aspx">selection</a> is no longer supported. Starting with Internet Explorer 11, use getSelection. For info, see Compatibility changes.]</p></blockquote></div><p>Используйте<br /></p><div class="codebox"><pre><code>
var parentwin = external.menuArguments;     // получаем объект окна
var doc = parentwin.document;               // получаем объект документа
if (doc.getSelection) var sel = doc.getSelection().toString();  // получаем текст выделения
else sel = doc.selection.createRange().text;
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Tue, 08 Aug 2017 19:51:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=117997#p117997</guid>
		</item>
		<item>
			<title><![CDATA[JS (ie): похоже перестал работать код ...selection.createRange().text]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=117994#p117994</link>
			<description><![CDATA[<p>Коллеги, есть предположение, что либо после обновления IE11 перестал работать много лет назад написаный javascript-код получения с web-страницы выделеного текста, либо где-то дурак, но не пойму где <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />.<br />Т.е. код типа такого:<br /><strong>javascript</strong><br /></p><div class="codebox"><pre><code>
var parentwin = external.menuArguments;     // получаем объект окна
var doc = parentwin.document;               // получаем объект документа
var sel = doc.selection.createRange().text; // получаем текст выделения
</code></pre></div><p>Сей код у меня встречается во многих html-примочках, работающих в качестве контекстного меню в IE, т.е. на некой web-странице по правой клавише мыши вызываешь различные скрипты применяемые к выделенному тексту (скан машины / поиск у/з в AD / конвертации текста / набор телефона и т.п.).<br />Начали жаловаться, что перестало работать, а, т.к. недавно было централизованное обновление на win-7 IE (11.0.9600.17843, update безопасности: 11.0.20) - грешу пока на него.</p><p>Пошаговое выполнение кода дает всегда на последней строке (... selection.createRange().text) неопределенное значение, вернее - вылет на catch() в блоке try{}.</p><p>Как&nbsp; ни странно, но проблему обошел &quot;костылём&quot; - вызовом аналогичного функционала, но написанного на vbscript, т.е. добавил vbs-функцию и вызываю ее из своего js-кода.<br /><strong>vbscript</strong><br /></p><div class="codebox"><pre><code>
Function uf_htmlGetSelection() &#039; 08.08.2017 получение из вызвавшего html-документа выделенного текста&#039;
	Dim ret
	ret = window.external.menuArguments.document.selection.createRange().text
	uf_htmlGetSelection = Trim( ret )
END FUNCTION
</code></pre></div><p>Прийдется попереписывать утилитки на vbs-костыль, но непонятно само происхождение проблемы.<br />Какие-то идеи есть? Кто-то с аналогичным сталкивался?</p>]]></description>
			<author><![CDATA[null@example.com (Rom5)]]></author>
			<pubDate>Tue, 08 Aug 2017 19:11:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=117994#p117994</guid>
		</item>
	</channel>
</rss>
