<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; JS (ie): похоже перестал работать код ...selection.createRange().text]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=12891&amp;type=atom" />
	<updated>2017-08-09T06:09:03Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=12891</id>
		<entry>
			<title type="html"><![CDATA[Re: JS (ie): похоже перестал работать код ...selection.createRange().text]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=118002#p118002" />
			<content type="html"><![CDATA[<p>Понял, спасибо большое!</p>]]></content>
			<author>
				<name><![CDATA[Rom5]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5724</uri>
			</author>
			<updated>2017-08-09T06:09:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=118002#p118002</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS (ie): похоже перестал работать код ...selection.createRange().text]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=117997#p117997" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2017-08-08T19:51:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=117997#p117997</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[JS (ie): похоже перестал работать код ...selection.createRange().text]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=117994#p117994" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Rom5]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5724</uri>
			</author>
			<updated>2017-08-08T19:11:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=117994#p117994</id>
		</entry>
</feed>
