<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; JS+bookmarklet+Opera: Открыть ссылку, содержащую определенное слово]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6902&amp;type=atom" />
	<updated>2012-03-16T07:34:13Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=6902</id>
		<entry>
			<title type="html"><![CDATA[Re: JS+bookmarklet+Opera: Открыть ссылку, содержащую определенное слово]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=57894#p57894" />
			<content type="html"><![CDATA[<p>Как вам помочь пока еще не думал.. но у меня все найденные ссылки вываливаются в список - щелкай не хочу любую.. при небольшой доработке их можно разбивать постранично и т.д. </p><p>имхо, делаю всегда общий код модулями (кусками) для удобства внесения изменений после обкатки...</p><p>ВСЕ - УРА, я иду в отпуск, но обещаю заглядывать сюда иногда!!!</p>]]></content>
			<author>
				<name><![CDATA[stir]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26486</uri>
			</author>
			<updated>2012-03-16T07:34:13Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=57894#p57894</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS+bookmarklet+Opera: Открыть ссылку, содержащую определенное слово]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=57892#p57892" />
			<content type="html"><![CDATA[<p>2<strong>JSman</strong><br />Годится!</p><p>А тут, видите ли, как-то незаметно, сама собой новая назрела насущность: открытие найденной ссылки (это может быть первая же ссылка) в том же окне — не в новом.</p>]]></content>
			<author>
				<name><![CDATA[DD]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25263</uri>
			</author>
			<updated>2012-03-16T06:36:42Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=57892#p57892</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS+bookmarklet+Opera: Открыть ссылку, содержащую определенное слово]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=57660#p57660" />
			<content type="html"><![CDATA[<p>Ну, можно и такой вариант, более короткий:<br /></p><div class="codebox"><pre><code>javascript:for(var i=0,lns=document.links,l=lns.length,e;i&lt;l;i++)if(/script-coding/.test(e=lns[i].href))open(e);</code></pre></div>]]></content>
			<author>
				<name><![CDATA[JSmаn]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24434</uri>
			</author>
			<updated>2012-03-09T12:56:35Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=57660#p57660</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS+bookmarklet+Opera: Открыть ссылку, содержащую определенное слово]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=57650#p57650" />
			<content type="html"><![CDATA[<p>Да дык с Вашей подсказкой и вдумываться специально не пришлось <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />.<br />Спасибо всем!</p><p><img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Эх, Витьку жалко — спилс<strong>я</strong>!</p>]]></content>
			<author>
				<name><![CDATA[DD]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25263</uri>
			</author>
			<updated>2012-03-08T14:54:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=57650#p57650</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS+bookmarklet+Opera: Открыть ссылку, содержащую определенное слово]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=57649#p57649" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>stir пишет:</cite><blockquote><p>linkIsSafe(dl[i].href)&amp;&amp;linkIsValid(dl[i].href)</p><p>смотрю уже на это 30 минут, может я чего не знаю.. сдаюсь! linkIsSafe - не знаю что это такое.</p></blockquote></div><p>Дык это функция которая была в изначальном скрипте, но потом почему то исчезла. Rumata написал правильный код, но не разжевал. Поэтому DD недумая склеил.</p><p>DD повдумчивей попробуйте.</p>]]></content>
			<author>
				<name><![CDATA[DnsIs]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26282</uri>
			</author>
			<updated>2012-03-08T11:59:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=57649#p57649</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS+bookmarklet+Opera: Открыть ссылку, содержащую определенное слово]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=57648#p57648" />
			<content type="html"><![CDATA[<p>о!<br /></p><div class="codebox"><pre><code>javascript: (function () { var i, l = document.links; for (i = 0; i &lt; l.length; ++i) {if (l[i].href.match(/http.*script-coding.*/)) {window.open(l[i].href);}}})();</code></pre></div>]]></content>
			<author>
				<name><![CDATA[DnsIs]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26282</uri>
			</author>
			<updated>2012-03-08T11:52:18Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=57648#p57648</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS+bookmarklet+Opera: Открыть ссылку, содержащую определенное слово]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=57622#p57622" />
			<content type="html"><![CDATA[<p>Ого! Тут мне корму на три года <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />.<br />На ту же тему, — с той разницей, что окрасит найденные ссылки со словом &quot;coding&quot; в желтый цвет:</p><div class="codebox"><pre><code>javascript:function hiliteUrls(wndw){for(pf8s=0;pf8s&lt;wndw.document.links.length;pf8s++){void(lnk3=wndw.document.links[pf8s]);if(lnk3.href.indexOf(answ1)!=-1){void(lnk3.style.backgroundColor=&#039;yellow&#039;);tot2++;}}}var answ1=&quot;coding&quot;;if(answ1!=null&amp;&amp;answ1!=&#039;&#039;){var tot2=0;void(frms=window.frames);if(frms.length==0){hiliteUrls(window);}else{for(iQA=0;iQA&lt;frms.length;iQA++){hiliteUrls(frms[iQA]);}}alert(tot2+&#039; link(s) found containing \&#039;&#039;+answ1+&#039;\&#039;.&#039;);}</code></pre></div><p>То ж:</p><div class="codebox"><pre><code>
javascript: function hiliteUrls(wndw) {
    for (pf8s = 0; pf8s &lt; wndw.document.links.length; pf8s++) {
        void(lnk3 = wndw.document.links[pf8s]);
        if (lnk3.href.indexOf(answ1) != -1) {
            void(lnk3.style.backgroundColor = &#039;yellow&#039;);
            tot2++;
        }
    }
}
var answ1 = &quot;coding&quot;;
if (answ1 != null &amp;&amp; answ1 != &#039;&#039;) {
    var tot2 = 0;
    void(frms = window.frames);
    if (frms.length == 0) {
        hiliteUrls(window);
    } else {
        for (iQA = 0; iQA &lt; frms.length; iQA++) {
            hiliteUrls(frms[iQA]);
        }
    }
    alert(tot2 + &#039; link(s) found containing \&#039;&#039; + answ1 + &#039;\&#039;.&#039;);
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[DD]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25263</uri>
			</author>
			<updated>2012-03-07T22:40:13Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=57622#p57622</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS+bookmarklet+Opera: Открыть ссылку, содержащую определенное слово]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=57583#p57583" />
			<content type="html"><![CDATA[<p>вот набросал как вариант (не полный, проверить тоже некогда):</p><div class="codebox"><pre><code> var dl = new array(); //содержит все ссылки
var sea = &#039;script-coding&#039;; //искомое слово, его можно вводить с помощью диалога в форме, если подумать над кодом...

// тут должна быть часть кода, которая вносит ссылки в массив dl 

//наша функция для отделения нужных ссылок
function xxx (dl, sea){
var n= 0;
var re=&#039;^&#039;+&#039;*&#039;+sea+&#039;*&#039;+&#039;$&#039;;
//var linkIsSafe = new array();// если надо, как вариант 2
var s=&#039;&#039;;//если выбрали 2 вариант, тогда эту переменную не используйте. она для 1 варианта.

for (i = 0; i &lt; dl.length; ++i) {
     if (!RegExp(re).test(dl[i])){
    //linkIsSafe[n]=dl[i];// если выбрали вариант 2
    ++n;
     s += dl[i].link(dl[i])+ &quot;&lt;br&gt;&quot;;//по умолчанию как вариант 1
    }
 }

    if (n==0) alert(&#039;no links&#039;);
    else {
        if (confirm(&#039;Показать найденные ссылки, &#039; + n+ &#039; шт.?&#039;)) 
        document.write(s);//здесь можно как угодно вывести данные, приведено для 1 варианта
    }
}</code></pre></div><p>незнаю как опера сможет сохранять найденное в массив.. поэтому приведена заключительная часть кода.</p>]]></content>
			<author>
				<name><![CDATA[stir]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26486</uri>
			</author>
			<updated>2012-03-07T04:14:09Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=57583#p57583</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS+bookmarklet+Opera: Открыть ссылку, содержащую определенное слово]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=57582#p57582" />
			<content type="html"><![CDATA[<p>в приведенном ниже варианте можно значение переменной сохранить в файл, заменив символ перехода на новую строку...<br />&quot;&lt;br&gt;&quot; на &#039;\n&#039;<br />Вот модуль записи данных:<br /></p><div class="codebox"><pre><code>//запись данных в файл
function write2(xname,s){
var fso2 = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;); 
    var f2 = fso2.CreateTextFile(xname, 1, false);
    f2.Close();
    var f2 = fso2.OpenTextFile(xname, 2, true);
    f2.WriteLine(s);
    f2.Close();    
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[stir]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26486</uri>
			</author>
			<updated>2012-03-07T03:24:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=57582#p57582</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS+bookmarklet+Opera: Открыть ссылку, содержащую определенное слово]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=57581#p57581" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>function () {
    var n_to_open, dl, dll, i;
 
    function linkIsValid(u) {
        return u.indexOf(&#039;script-coding&#039;) != -1;
    }
    n_to_open = 0;
    dl = document.links;
    dll = dl.length;
    for (i = 0; i &lt; dll; ++i) {
        if (linkIsSafe(dl[i].href)&amp;&amp;linkIsValid(dl[i].href))++n_to_open;
    }
    if (!n_to_open) alert(&#039;no links&#039;);
    else {
        if (confirm(&#039;Open &#039; + n_to_open + &#039; links in new windows?&#039;)) for (i = 0; i &lt; dll; ++i) if (linkIsSafe(dl[i].href)&amp;&amp;linkIsValid(dl[i].href)) window.open(dl[i].href);
    }
}</code></pre></div><p>Функциям обычно необходимы переменные (переданные их значения) в скобках для исполнения функции.. здесь их нет, ну и т.д.<br />Работоспособность скрипта не проверил из-за отсутствия понимания странного для меня условия в скрипте, <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />.<br />var n_to_open, dl, dll, i - можно не перечислять, а сразу присваивать значения .. Для универсальности скрипта можно искомую текстовую фразу передавать как переменную в функцию.<br />Условия невыполнены:<br /> if (условие) оператор1<br />a &amp;&amp; b это Логическое AND, а эталона для сравнения я не увидел..<br />Например всем известная функция правильно написана:<br /></p><div class="codebox"><pre><code>function validate(obj, low, high) {
    if ((obj.value &lt; low) || (obj.value &gt; high))
    alert(&quot;Введено недопустимое значение!&quot;)
}</code></pre></div><p>linkIsSafe(dl[i].href)&amp;&amp;linkIsValid(dl[i].href)</p><p>смотрю уже на это 30 минут, может я чего не знаю.. сдаюсь! linkIsSafe - не знаю что это такое.</p><p>Может логику скрипта изменить?<br />Например:<br />Ищем то что удовлетворяет условию и записываем в массив, если ничего не нашли - выводим сообщение об этом, иначе создаем на странице из значений массивов ссылки (вывод построчно денлаем). Тогда код немного изменится. Поиск лучше сделать из регулярки, имхо.</p>]]></content>
			<author>
				<name><![CDATA[stir]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26486</uri>
			</author>
			<updated>2012-03-07T02:20:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=57581#p57581</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS+bookmarklet+Opera: Открыть ссылку, содержащую определенное слово]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=57580#p57580" />
			<content type="html"><![CDATA[<p>Я его правильно собрал? —</p><div class="codebox"><pre><code>javascript: (function () {
    var n_to_open, dl, dll, i;

    function linkIsValid(u) {
        return u.indexOf(&#039;script-coding&#039;) != -1;
    }
    n_to_open = 0;
    dl = document.links;
    dll = dl.length;
    for (i = 0; i &lt; dll; ++i) {
        if (linkIsSafe(dl[i].href)&amp;&amp;linkIsValid(dl[i].href))++n_to_open;
    }
    if (!n_to_open) alert(&#039;no links&#039;);
    else {
        if (confirm(&#039;Open &#039; + n_to_open + &#039; links in new windows?&#039;)) for (i = 0; i &lt; dll; ++i) if (linkIsSafe(dl[i].href)&amp;&amp;linkIsValid(dl[i].href)) window.open(dl[i].href);
    }
})();</code></pre></div><p>То бишь:</p><div class="codebox"><pre><code>javascript: (function () {     var n_to_open, dl, dll, i;      function linkIsValid(u) {         return u.indexOf(&#039;script-coding&#039;) != -1;     }     n_to_open = 0;     dl = document.links;     dll = dl.length;     for (i = 0; i &lt; dll; ++i) {         if (linkIsSafe(dl[i].href)&amp;&amp;linkIsValid(dl[i].href))++n_to_open;     }     if (!n_to_open) alert(&#039;no links&#039;);     else {         if (confirm(&#039;Open &#039; + n_to_open + &#039; links in new windows?&#039;)) for (i = 0; i &lt; dll; ++i) if (linkIsSafe(dl[i].href)&amp;&amp;linkIsValid(dl[i].href)) window.open(dl[i].href);     } })();</code></pre></div><p>А то не фурычит.</p>]]></content>
			<author>
				<name><![CDATA[DD]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25263</uri>
			</author>
			<updated>2012-03-06T21:46:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=57580#p57580</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS+bookmarklet+Opera: Открыть ссылку, содержащую определенное слово]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=57579#p57579" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>
...
    function linkIsValid(u) {
        return u.indexOf(&#039;script-coding&#039;) != -1;
    }
...
        if (linkIsSafe(dl[i].href)&amp;&amp;linkIsValid(dl[i].href))++n_to_open;
...
        if (confirm(&#039;Open &#039; + n_to_open + &#039; links in new windows?&#039;)) for (i = 0; i &lt; dll; ++i) if (linkIsSafe(dl[i].href)&amp;&amp;linkIsValid(dl[i].href)) window.open(dl[i].href);</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2012-03-06T20:47:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=57579#p57579</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS+bookmarklet+Opera: Открыть ссылку, содержащую определенное слово]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=57578#p57578" />
			<content type="html"><![CDATA[<p>Прошу:</p><p><strong>script-coding</strong></p>]]></content>
			<author>
				<name><![CDATA[DD]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25263</uri>
			</author>
			<updated>2012-03-06T20:20:37Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=57578#p57578</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS+bookmarklet+Opera: Открыть ссылку, содержащую определенное слово]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=57569#p57569" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>DD пишет:</cite><blockquote><p>ссылка с каким-либо определённым текстом</p></blockquote></div><p>критерий &quot;определенности&quot; текста?</p>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2012-03-06T14:11:56Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=57569#p57569</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[JS+bookmarklet+Opera: Открыть ссылку, содержащую определенное слово]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=57567#p57567" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>javascript:(function(){var n_to_open,dl,dll,i; function linkIsSafe(u) { if (u.substr(0,7)==&#039;mailto:&#039;) return false; if (u.substr(0,11)==&#039;javascript:&#039;) return false; return true; } n_to_open = 0; dl = document.links; dll = dl.length; for(i = 0; i &lt; dll; ++i) { if (linkIsSafe(dl[i].href)) ++n_to_open; } if (!n_to_open) alert (&#039;no links&#039;); else { if (confirm(&#039;Open &#039; + n_to_open + &#039; links in new windows?&#039;)) for (i = 0; i &lt; dll; ++i) if (linkIsSafe(dl[i].href)) window.open(dl[i].href); } })();</code></pre></div><p>Приведенный букмарклет, выведя окно подтверждения, откроет все ссылки страницы в новом окне.<br />Он же:</p><div class="codebox"><pre><code>javascript: (function () {
    var n_to_open, dl, dll, i;

    function linkIsSafe(u) {
        if (u.substr(0, 7) == &#039;mailto:&#039;) return false;
        if (u.substr(0, 11) == &#039;javascript:&#039;) return false;
        return true;
    }
    n_to_open = 0;
    dl = document.links;
    dll = dl.length;
    for (i = 0; i &lt; dll; ++i) {
        if (linkIsSafe(dl[i].href))++n_to_open;
    }
    if (!n_to_open) alert(&#039;no links&#039;);
    else {
        if (confirm(&#039;Open &#039; + n_to_open + &#039; links in new windows?&#039;)) for (i = 0; i &lt; dll; ++i) if (linkIsSafe(dl[i].href)) window.open(dl[i].href);
    }
})();</code></pre></div><p>Обуревает блажь изменить его таким образом, чтобы открывалась ссылка с каким-либо определённым текстом. Прошу в этом посильно помочь.</p>]]></content>
			<author>
				<name><![CDATA[DD]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25263</uri>
			</author>
			<updated>2012-03-06T13:23:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=57567#p57567</id>
		</entry>
</feed>
