<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; WSH: htmlfile невозможно назначить свойство innerHTML]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5299&amp;type=atom" />
	<updated>2010-12-25T22:05:26Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=5299</id>
		<entry>
			<title type="html"><![CDATA[Re: WSH: htmlfile невозможно назначить свойство innerHTML]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43047#p43047" />
			<content type="html"><![CDATA[<p>На самом деле в документации не все описано относительно работы метода open.</p><p>Вроде бы должен перегружаться документ (вроде как набор nodes). Но думать, что документ равносилен дереву элементов, неправильно. Узлы действительно исчезают, однако появляются следующие вопросы:</p><p>1. Сохранятся ли переменные в window после применения document.open?<br /></p><div class="codebox"><pre><code>var a = 1;

window.onload = function test()
{
document.open(&quot;html/text&quot;, &quot;replace&quot;);
document.write(1);
document.write(2);
document.close();
alert([window.a, window.test]);
}</code></pre></div><p>Ответ: Да. Таким образом documentElement будет заново инициализирован, но объекты JS будут сидеть в памяти.</p><p>2. Элементы «в воздухе», созданные createElement, можно ли потом прилепить к новому дереву? <br /></p><div class="codebox"><pre><code>var element = document.createElement(&quot;span&quot;);
element.innerHTML = &quot;Spartaaaa!!&quot;;
window.onload = function ()
{
document.open(&quot;html/text&quot;, &quot;replace&quot;);
document.write(1);
document.write(2);
document.close();

alert(typeof element);
alert(element.tagName);
document.body.appendChild(element);</code></pre></div><p>Ответ: Нет. При этом будет известно, что мы имеем дело с объектом. Но получить доступ к нему не удастся: разрешение отклонено. Вроде бы на первый взгляд кажется, что элементы, созданные createElement должны быть автономными (как экземпляры класса), однако это не так. Они жестко привязаны к документу. Таким образом документ — это уже не просто иерархия нодов, начиная от рута, но и «висячие в воздухе» элементы. </p><p>3. Восстановятся ли перегруженные встроенные функции языка JScript после применения метода open?<br /> </p><div class="codebox"><pre><code>window.onload = function ()
{
window.setInterval  = function (){return};
alert(window.setInterval);

document.open(&quot;html/text&quot;, &quot;replace&quot;);
document.write(1);
document.write(2);
document.close();

alert(window.setInterval);</code></pre></div><p>Ответ: Да. Таким образом в понятие «документ» добавятся набор встроенных функций языка.</p>]]></content>
			<author>
				<name><![CDATA[JSmаn]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24434</uri>
			</author>
			<updated>2010-12-25T22:05:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43047#p43047</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: htmlfile невозможно назначить свойство innerHTML]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43042#p43042" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>JSman пишет:</cite><blockquote><p>... затирается текущее дерево и создается новое...</p></blockquote></div><p>Вот об этом я и вел речь. Давайте оставим это. Где-то в памяти застряла мысль, что этот метод устаревший и не рекомендован к использованию. Есть вероятность, что я что-то с чем-то путаю. В данном случае необходимо явное открытие документа, чтобы можно было работать с DOM. И в этом его непременная польза и необходимость.</p>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2010-12-25T19:44:34Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43042#p43042</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: htmlfile невозможно назначить свойство innerHTML]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43040#p43040" />
			<content type="html"><![CDATA[<p>Главное, чтобы итог в Коллекцию попал <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />. Можно прямо здесь сделать предварительное сообщение, и здесь же обсудить его.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2010-12-25T18:47:33Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43040#p43040</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: htmlfile невозможно назначить свойство innerHTML]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43037#p43037" />
			<content type="html"><![CDATA[<p>Действительно, в случае вызова document.open без параметров (используются значения по умолчанию &quot;text/html&quot;, &quot;replace&quot; ) затирается текущее дерево и создается новое, которое заполняется в последующем методом document.write. В этом и есть предназначение open. Описание метода <a href="http://msdn.microsoft.com/en-us/library/ms536652(v=vs.85).aspx">тут</a>.</p><p>Только причем тут недостатки, я не понял. Если есть какие-то вопросы, может рассмотрим?</p>]]></content>
			<author>
				<name><![CDATA[JSmаn]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24434</uri>
			</author>
			<updated>2010-12-25T18:23:07Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43037#p43037</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: htmlfile невозможно назначить свойство innerHTML]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43027#p43027" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Rumata пишет:</cite><blockquote><p>Да. Но в этом случае текущий документ затирается и создается новое DOM-дерево.</p></blockquote></div><p>Ну и чем же это плохо то ?</p><div class="codebox"><pre><code>&lt;html&gt;
    &lt;head&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;script&gt;
            document.write(&#039;aaaaaaa&#039;);
        &lt;/script&gt;
        &lt;h1&gt;Текст, который никто не увидит&lt;/h1&gt;
    &lt;/body&gt;
&lt;/html&gt;</code></pre></div><p>Пока что не вижу ни единой причины для переживания.</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2010-12-25T16:29:52Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43027#p43027</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: htmlfile невозможно назначить свойство innerHTML]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43026#p43026" />
			<content type="html"><![CDATA[<p>Да. Но в этом случае текущий документ затирается и создается новое DOM-дерево.</p>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2010-12-25T16:18:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43026#p43026</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: htmlfile невозможно назначить свойство innerHTML]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43025#p43025" />
			<content type="html"><![CDATA[<p>Разве это неудобство ? На мой взгляд это вполне правильное поведение. И ни кто не запрещает вызывать document.write не в window.onload а до загрузки. )</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2010-12-25T16:12:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43025#p43025</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: htmlfile невозможно назначить свойство innerHTML]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43024#p43024" />
			<content type="html"><![CDATA[<p>document.open затирает текущий поток. Вот простой пример:<br /></p><div class="codebox"><pre><code>&lt;html&gt;
&lt;head&gt;
&lt;script&gt;

winodw.onload = function()
{
    document.open();
    document.write(&#039;FAIL!&#039;);
    document.close();
}

&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;Текст, который никто не увидит&lt;/h1&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2010-12-25T16:05:50Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43024#p43024</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: htmlfile невозможно назначить свойство innerHTML]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43023#p43023" />
			<content type="html"><![CDATA[<p>Например ?</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2010-12-25T15:59:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43023#p43023</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: htmlfile невозможно назначить свойство innerHTML]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43022#p43022" />
			<content type="html"><![CDATA[<p>Я тоже - за. Но сказав о document.open надо сказать и о его недостатках. А они есть, однако.</p>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2010-12-25T15:51:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43022#p43022</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: htmlfile невозможно назначить свойство innerHTML]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43021#p43021" />
			<content type="html"><![CDATA[<p>Эт как скажете. ) Я за.</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2010-12-25T15:45:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43021#p43021</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: htmlfile невозможно назначить свойство innerHTML]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43020#p43020" />
			<content type="html"><![CDATA[<p><strong>Xameleon</strong>, <strong>Rumata</strong>, на моей памяти это уже третий раз (я сам как-то спрашивал, зачем сие «document.open/document.close» нужно). Может это как-то оформить в Коллекцию?</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2010-12-25T15:21:58Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43020#p43020</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: htmlfile невозможно назначить свойство innerHTML]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43018#p43018" />
			<content type="html"><![CDATA[<p>Спасибо! Действительно, документ надо инициализировать.</p>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2010-12-25T15:09:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43018#p43018</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: htmlfile невозможно назначить свойство innerHTML]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43017#p43017" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>Option Explicit
Dim document, DIVelement
Set document = CreateObject(&quot;htmlfile&quot;)
document.open
document.close

Set DIVelement = document.CreateElement(&quot;div&quot;)

DIVelement.innerHtml = &quot;&lt;b&gt;sss&lt;/b&gt;&quot;

msgbox DIVelement.innerHtml</code></pre></div><p>Да вроде бы всё норм работает, если документ инициализирован. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br /></p><div class="codebox"><pre><code>document.open
document.close</code></pre></div><p>Просто в браузере это уже происходит автоматом, а в нашем случае нужно делать это принудительно.</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2010-12-25T14:37:12Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43017#p43017</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: htmlfile невозможно назначить свойство innerHTML]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43016#p43016" />
			<content type="html"><![CDATA[<p>Ога...&nbsp; &nbsp;попробовал Win7 x64 IE9_Beta - <strong>Неопознанная ошибка</strong> <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /><br />т.е. стабильно неработающий код...</p>]]></content>
			<author>
				<name><![CDATA[Евген]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25253</uri>
			</author>
			<updated>2010-12-25T14:37:00Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43016#p43016</id>
		</entry>
</feed>
