<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; Greasemonkey/Scriptish: Автообновление Ajax страниц]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6226&amp;type=atom" />
	<updated>2011-09-18T09:44:10Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=6226</id>
		<entry>
			<title type="html"><![CDATA[Re: Greasemonkey/Scriptish: Автообновление Ajax страниц]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51643#p51643" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>DnsIs пишет:</cite><blockquote><p>…Просто не умею выражать мысли.</p></blockquote></div><p>Сам такой <img src="//forum.script-coding.com/img/smilies/sad.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>2011-09-18T09:44:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51643#p51643</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Greasemonkey/Scriptish: Автообновление Ajax страниц]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51640#p51640" />
			<content type="html"><![CDATA[<p>2alexii конечно вы правы, и я об этом прекрасно знаю. Просто не умею выражать мысли.</p>]]></content>
			<author>
				<name><![CDATA[DnsIs]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26282</uri>
			</author>
			<updated>2011-09-18T07:29:55Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51640#p51640</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Greasemonkey/Scriptish: Автообновление Ajax страниц]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51625#p51625" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>DnsIs пишет:</cite><blockquote><p>собственно они внедряют на сторонние сайты свой код javascript,</p></blockquote></div><p>Всё же нет. Они встраивают в отдаваемый браузеру текст html-страницы своё содержимое по заданным правилам. Сайт об этом ничего не знает.</p><p><em>Update</em>: собственно, <strong>Rumata</strong> уже сказал.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-09-17T21:50:56Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51625#p51625</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Greasemonkey/Scriptish: Автообновление Ajax страниц]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51599#p51599" />
			<content type="html"><![CDATA[<p>С Вами и я узнал про сии события, описанные в DOM Level 2. ))).</p>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2011-09-17T18:44:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51599#p51599</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Greasemonkey/Scriptish: Автообновление Ajax страниц]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51596#p51596" />
			<content type="html"><![CDATA[<p>Ухты елки-палки.<br />Заработало, только не с <strong>DOMNodeInsertedIntoDocument</strong>, а с <strong>DOMNodeInserted</strong>. А я не слышал про такую магию. Благодарю, Rumata. Буду тестить, ковырять.</p>]]></content>
			<author>
				<name><![CDATA[DnsIs]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26282</uri>
			</author>
			<updated>2011-09-17T18:29:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51596#p51596</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Greasemonkey/Scriptish: Автообновление Ajax страниц]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51589#p51589" />
			<content type="html"><![CDATA[<p>Попробуйте что-нибудь эдакое. Писал на коленке. Так что если сработает, засчитайте это как мой первый рабочий скрипт для GreaseMonkey )))<br /></p><div class="codebox"><pre><code>// ==UserScript==
// @id             test@js
// @name           for http://juicystudio.com
// @include        http://juicystudio.com/*
// ==/UserScript==
(function()
{
    document.addEventListener(&#039;DOMNodeInsertedIntoDocument&#039;, function(e)
    {
        e = e || window.event;
        var s = e.target;
        if ( s.id == &#039;update&#039; ) {
            s.style.color = &#039;#ff0000&#039;;
        }
    }), false);
})();</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2011-09-17T17:30:41Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51589#p51589</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Greasemonkey/Scriptish: Автообновление Ajax страниц]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51586#p51586" />
			<content type="html"><![CDATA[<p>Я знаю, что такое GreaseMonkey, хотя ни разу не пользовался им. </p><div class="quotebox"><blockquote><p>GreaseMonkey/Scriptish ... внедряют на сторонние сайты свой код javascript</p></blockquote></div><p>. Я бы не стал так утверждать. Скорее - выполняют дополнительный код для определенных сайтов. Ну, это уже тонкости... </p><p>Почитайте документацию к расширениям. Поищите события DOM. Может быть там есть что-то называемое DOMNodeInserted/DOMNodeInsertedIntoDocument.</p>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2011-09-17T17:19:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51586#p51586</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Greasemonkey/Scriptish: Автообновление Ajax страниц]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51584#p51584" />
			<content type="html"><![CDATA[<p>Если сайт был бы мой, то проблем бы не было. 8)<br />GreaseMonkey же помогает как раз с чужими сайтами. Наверное мне стоило начать с того, что бы вкратце рассказать что же за расширения такие GreaseMonkey/Scriptish - собственно они внедряют на сторонние сайты свой код javascript, что позволяет динамически менять любой сайт, само собой только для своего браузера.</p><p>Так что есть возможность влиять только на уже созданную страницу.</p><p>То что вы написали, я понимаю. Хотелось узнать может есть некая хитрость/хак реализующая нечто:</p><p>body.onreload(...) - то есть отрабатывающая при обновлении страницы.</p>]]></content>
			<author>
				<name><![CDATA[DnsIs]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26282</uri>
			</author>
			<updated>2011-09-17T16:57:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51584#p51584</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Greasemonkey/Scriptish: Автообновление Ajax страниц]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51583#p51583" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>            var objCurrent = document.getElementById(&#039;update&#039;);
            var objReplacement = document.createElement(&#039;p&#039;);

            objReplacement.setAttribute(&#039;id&#039;, &#039;update&#039;);
            objReplacement.tabIndex = -1;
            objReplacement.appendChild(document.createTextNode(strResult));

            if (objCurrent)
                objCurrent.parentNode.replaceChild(objReplacement, objCurrent);</code></pre></div><p>Проблема в этих строках - происходит замена одного элемента другим. Если сайт Ваш - перепишите эти строки, так чтобы менялось ТОЛЬКО содержимое, а не весь элемент. Иначе - ищите пути смены стиля не у старого элемента, а у нового. Есть такая возможность в GreaseMonkey?</p>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2011-09-17T16:40:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51583#p51583</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Greasemonkey/Scriptish: Автообновление Ajax страниц]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51582#p51582" />
			<content type="html"><![CDATA[<p>Доброго дня. Пишу небольшой скриптик для <a href="http://mozilla-russia.org/products/firefox/">Firefox</a>+<a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/">Greasemonkey</a>/<a href="https://addons.mozilla.org/en-US/firefox/addon/scriptish/">Scriptish</a>, но столкнулся с проблемкой. </p><p>Страница Ajax-овая. И при обновлении контента, мои изменения на странице исчезают.</p><p>Пример<br />Вот сайт <a href="http://juicystudio.com/experiments/ajax/index.php?f=1">http://juicystudio.com</a> - небольшая страница для тестирования Ajax.<br />Пишу для нее тестовый код который просто меняет цвет текста.<br /></p><div class="codebox"><pre><code>// ==UserScript==
// @id             test@js
// @name           for http://juicystudio.com
// @include        http://juicystudio.com/*
// ==/UserScript==
(function () {
    document.getElementById(&#039;update&#039;).setAttribute(&#039;style&#039;,&#039;color:red&#039;);
})();</code></pre></div><p>При клике на ссылку <strong>[Generate random fact]</strong>, элемент &lt;p&gt; именяет свое содержимое и весь мой красный текст идет к черту.</p><p>Я придумал 2 варианта.<br />1. Это использовать setInterval(...), то есть через какой то промежуток времени запускать мою функцию.<br /></p><div class="codebox"><pre><code>// ==UserScript==
// @id             test@js
// @name           for http://juicystudio.com
// @include        http://juicystudio.com/*
// ==/UserScript==
(function () {
  setInterval(function(){document.getElementById(&#039;update&#039;).setAttribute(&#039;style&#039;,&#039;color:red&#039;)},2000);
})();</code></pre></div><p>Но мне почему то кажется что это плохой подход, напрягать браузер скриптом не стоит.</p><p>2. Еще как вариант это повесить на сылку свой обработчик.<br /></p><div class="codebox"><pre><code>// ==UserScript==
// @id             test@js
// @name           for http://juicystudio.com
// @include        http://juicystudio.com/*
// ==/UserScript==
(function () {
  document.getElementById(&#039;fact&#039;).addEventListener( &quot;click&quot;, function(){setTimeout(&quot;document.getElementById(&#039;update&#039;).setAttribute(&#039;style&#039;,&#039;color:red&#039;)&quot;,2000)}, false);
})();</code></pre></div><p>Это неплохо когда всего 1 ссылка на странице. А если их тьма? Тогда придется вешать на все.</p><p>Вот хотелось бы спросить. А есть еще какие то варианты, что бы добиться моей цели?</p>]]></content>
			<author>
				<name><![CDATA[DnsIs]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26282</uri>
			</author>
			<updated>2011-09-17T16:07:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51582#p51582</id>
		</entry>
</feed>
