mit eurer hilfe schwer erarbeitet, aber funktioniert nicht... – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self mit eurer hilfe schwer erarbeitet, aber funktioniert nicht... Thu, 29 Sep 11 20:06:57 Z https://forum.selfhtml.org/self/2011/sep/29/mit-eurer-hilfe-schwer-erarbeitet-aber-funktioniert-nicht/1527128#m1527128 https://forum.selfhtml.org/self/2011/sep/29/mit-eurer-hilfe-schwer-erarbeitet-aber-funktioniert-nicht/1527128#m1527128 <p>moinmoin ihr alle,</p> <p>vor nicht allzu langer zeit habt ihr mir den weg für das hier geebnet:</p> <pre><code class="block language-javascript"><span class="token keyword">var</span> <span class="token function-variable function">myHandler</span> <span class="token operator">=</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>blur<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">blur</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token comment">// gepünktelten rahmen um link entfernen </span> window<span class="token punctuation">.</span><span class="token function-variable function">onload</span> <span class="token operator">=</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">var</span> toFocus <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span>window<span class="token punctuation">.</span>location<span class="token punctuation">.</span>hash<span class="token punctuation">.</span><span class="token function">substr</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>toFocus<span class="token punctuation">)</span> <span class="token punctuation">{</span> toFocus<span class="token punctuation">.</span><span class="token function">focus</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// link mit id="bla" fokussieren </span> <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">var</span> i<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span>i<span class="token operator"><</span>document<span class="token punctuation">.</span>links<span class="token punctuation">.</span>length<span class="token punctuation">;</span>i<span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> document<span class="token punctuation">.</span>links<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">.</span>onmouseup <span class="token operator">=</span> myHandler<span class="token punctuation">;</span> <span class="token comment">// beim loesen der maustaste rahmen um link entfernen (siehe variable myHandler) </span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> </code></pre> <p>das script soll den gepünktelten rahmen um angeklickte links beim lösen der maustaste entfernen, doch leider funktioniert das nicht. vorher sah das ding folgender maßen aus und beinhaltete den fehler einer funktion innerhalb eines loops:</p> <pre><code class="block language-javascript"> window<span class="token punctuation">.</span><span class="token function-variable function">onload</span> <span class="token operator">=</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">// link mit id="bla" fokussieren </span> <span class="token keyword">var</span> toFocus <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span>window<span class="token punctuation">.</span>location<span class="token punctuation">.</span>hash<span class="token punctuation">.</span><span class="token function">substr</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>toFocus<span class="token punctuation">)</span> <span class="token punctuation">{</span>toFocus<span class="token punctuation">.</span><span class="token function">focus</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// beim loesen der maustaste rahmen um link entfernen </span> <span class="token keyword">for</span><span class="token punctuation">(</span>i<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span>i<span class="token operator"><</span>document<span class="token punctuation">.</span>links<span class="token punctuation">.</span>length<span class="token punctuation">;</span>i<span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> document<span class="token punctuation">.</span>links<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">.</span><span class="token function-variable function">onmouseup</span><span class="token operator">=</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>blur<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">blur</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> </code></pre> <p>das ist wohl aus verschiedenen gründen nicht ganz sauber, funktioniert aber prima in allen mir untergekommenen browsern... was ist da faul?</p> <p><a href="http://www.jungmann.net/start.blog.html#mumin" rel="nofollow noopener noreferrer">mfg</a> <a href="http://www.jungmann.net/#nopuresw" rel="nofollow noopener noreferrer">torsten</a></p> <div class="signature">-- <br> Shakespeare sagt: To be or not to be / Sartre sagt: To be is to do / Camus sagt: To do is to be / Sinatra singt: Do be do be do </div> mit eurer hilfe schwer erarbeitet, aber funktioniert nicht... Thu, 29 Sep 11 20:19:05 Z https://forum.selfhtml.org/self/2011/sep/29/mit-eurer-hilfe-schwer-erarbeitet-aber-funktioniert-nicht/1527135#m1527135 https://forum.selfhtml.org/self/2011/sep/29/mit-eurer-hilfe-schwer-erarbeitet-aber-funktioniert-nicht/1527135#m1527135 <p>[latex]Mae  govannen![/latex]</p> <blockquote> <p>was ist da faul?</p> </blockquote> <p>...daß du dem Nutzer eine vom Browser bereitgestellte Orientierungsmöglichkeit wegnehmen willst, egal ob es ihm passt.</p> <p>Stur lächeln und winken, Männer!<br> Kai</p> <div class="signature">-- <br> Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken<br> in Richtung "Mess up the Web".(<a href="https://forum.selfhtml.org/?t=197497&m=1324775" rel="noopener noreferrer">suit</a>)<br> <a href="http://selfhtml.knrs.de/#h_stylesheet" rel="nofollow noopener noreferrer">SelfHTML-Forum-Stylesheet</a> </div> mit eurer hilfe schwer erarbeitet, aber funktioniert nicht... Thu, 29 Sep 11 20:34:52 Z https://forum.selfhtml.org/self/2011/sep/29/mit-eurer-hilfe-schwer-erarbeitet-aber-funktioniert-nicht/1527129#m1527129 https://forum.selfhtml.org/self/2011/sep/29/mit-eurer-hilfe-schwer-erarbeitet-aber-funktioniert-nicht/1527129#m1527129 <p>Hallo,</p> <blockquote> <p>das ist wohl aus verschiedenen gründen nicht ganz sauber,</p> </blockquote> <p>Kannst du diese Vermutung präzisieren? In welcher Hinsicht nicht sauber?</p> <blockquote> <p>funktioniert aber prima in allen mir untergekommenen browsern...</p> </blockquote> <p>Okay. Wie lautet nun deine Frage?</p> <blockquote> <p>was ist da faul?</p> </blockquote> <p>Gerade sagst du noch, es funktioniere prima. Was soll wo faul sein?</p> <p>Mathias</p> mit eurer hilfe schwer erarbeitet, aber funktioniert nicht... Thu, 29 Sep 11 20:47:14 Z https://forum.selfhtml.org/self/2011/sep/29/mit-eurer-hilfe-schwer-erarbeitet-aber-funktioniert-nicht/1527130#m1527130 https://forum.selfhtml.org/self/2011/sep/29/mit-eurer-hilfe-schwer-erarbeitet-aber-funktioniert-nicht/1527130#m1527130 <p>moinmoin molily,</p> <blockquote> <p>Hallo,</p> <blockquote> <p>das ist wohl aus verschiedenen gründen nicht ganz sauber,</p> </blockquote> <p>Kannst du diese Vermutung präzisieren? In welcher Hinsicht nicht sauber?</p> </blockquote> <p><a href="http://www.jslint.com/" rel="nofollow noopener noreferrer">jsLint</a> meckert sehr viel mehr aber im großen und ganzen lässt sich das folgender maßen zusammen fassen:</p> <p>Error:<br> Problem at line 16 character 18: Don't make functions within a loop.<br> };<br> Implied global: window 1,4, i 8,10</p> <p>das ganze bezieht sich auf das untere script ohne lokale variable myHandler</p> <blockquote> <blockquote> <p>funktioniert aber prima in allen mir untergekommenen browsern...</p> </blockquote> <p>Okay. Wie lautet nun deine Frage?</p> </blockquote> <p>wieso funktioniert variante eins nicht?</p> <blockquote> <blockquote> <p>was ist da faul?</p> </blockquote> <p>Gerade sagst du noch, es funktioniere prima. Was soll wo faul sein?</p> </blockquote> <p>zwei varianten, eine mit variable myHandler, eine ohne. inhaltlich aber quasi gleich. eine tut's, eine nicht, das bezeichne ich mal im jugendlichen überschwang als "faul" ;-)</p> <p><a href="http://www.jungmann.net/start.blog.html#mumin" rel="nofollow noopener noreferrer">mfg</a> <a href="http://www.jungmann.net/#nopuresw" rel="nofollow noopener noreferrer">torsten</a></p> <div class="signature">-- <br> Shakespeare sagt: To be or not to be / Sartre sagt: To be is to do / Camus sagt: To do is to be / Sinatra singt: Do be do be do </div> mit eurer hilfe schwer erarbeitet, aber funktioniert nicht... Thu, 29 Sep 11 21:32:58 Z https://forum.selfhtml.org/self/2011/sep/29/mit-eurer-hilfe-schwer-erarbeitet-aber-funktioniert-nicht/1527131#m1527131 https://forum.selfhtml.org/self/2011/sep/29/mit-eurer-hilfe-schwer-erarbeitet-aber-funktioniert-nicht/1527131#m1527131 <blockquote> <p>Problem at line 16 character 18: Don't make functions within a loop.</p> </blockquote> <p>Das ist eine Empfehlung. Du erzeugst immer wieder dieselbe Funktion in der Schleife. Das ist tatsächlich unnötig. Ist aber kein gravierendes Problem.</p> <blockquote> <p>Implied global: window 1,4, i 8,10</p> </blockquote> <p>i sollte eine lokale Variable sein.</p> <blockquote> <p>wieso funktioniert variante eins nicht?</p> </blockquote> <p>Tut sie das wirklich nicht? Sie ist in der Funktionalität identisch mit der zweiten. Sie dürfte sich ganz genauso verhalten.<br> In welchem Browsern unter welchen Umständen funktioniert nur die erste?</p> <p>Mathias</p> mit eurer hilfe schwer erarbeitet, aber funktioniert nicht... Fri, 30 Sep 11 08:12:04 Z https://forum.selfhtml.org/self/2011/sep/29/mit-eurer-hilfe-schwer-erarbeitet-aber-funktioniert-nicht/1527132#m1527132 https://forum.selfhtml.org/self/2011/sep/29/mit-eurer-hilfe-schwer-erarbeitet-aber-funktioniert-nicht/1527132#m1527132 <p>moinmoin molily,</p> <blockquote> <blockquote> <p>Problem at line 16 character 18: Don't make functions within a loop.</p> </blockquote> <p>Das ist eine Empfehlung. Du erzeugst immer wieder dieselbe Funktion in der Schleife. Das ist tatsächlich unnötig. Ist aber kein gravierendes Problem.</p> <blockquote> <p>Implied global: window 1,4, i 8,10</p> </blockquote> <p>i sollte eine lokale Variable sein.</p> </blockquote> <p>hm, dann muss ich mal versuchen das um zu basteln, das lohnt aber erst wenn ich rausfinde was nicht so geht wie ich's mir wünsche.</p> <blockquote> <blockquote> <p>wieso funktioniert variante eins nicht?</p> </blockquote> <p>Tut sie das wirklich nicht? Sie ist in der Funktionalität identisch mit der zweiten. Sie dürfte sich ganz genauso verhalten.<br> In welchem Browsern unter welchen Umständen funktioniert nur die erste?</p> </blockquote> <p>nä, tut sie nicht ABER, und das ist mein irrtum, die andere auch nicht. <a href="http://jungmann.net/start.test.html" rel="nofollow noopener noreferrer">hier</a> kannst du das ganze online bestaunen, beim klick auf eins der bilder in der mitte geht das linkziel entweder im gleichen fenster/tab auf oder es öffnet sich ein neues UND der rahmen um das bild erscheint. selbst wenn ich den back-button benutze ist der rahmen noch da. hab den aktuellen IE und FF benutzt...</p> <p>ominös, ich habe die funktion schon viele jahre am laufen, mir ist nie aufgefallen, das ich nur einen dummy eingebaut habe...</p> <p><a href="http://www.jungmann.net/start.blog.html#mumin" rel="nofollow noopener noreferrer">mfg</a> <a href="http://www.jungmann.net/#nopuresw" rel="nofollow noopener noreferrer">torsten</a></p> <div class="signature">-- <br> Shakespeare sagt: To be or not to be / Sartre sagt: To be is to do / Camus sagt: To do is to be / Sinatra singt: Do be do be do </div> mit eurer hilfe schwer erarbeitet, aber funktioniert nicht... Fri, 30 Sep 11 09:36:42 Z https://forum.selfhtml.org/self/2011/sep/29/mit-eurer-hilfe-schwer-erarbeitet-aber-funktioniert-nicht/1527133#m1527133 https://forum.selfhtml.org/self/2011/sep/29/mit-eurer-hilfe-schwer-erarbeitet-aber-funktioniert-nicht/1527133#m1527133 <blockquote> <p>nä, tut sie nicht ABER, und das ist mein irrtum, die andere auch nicht. <a href="http://jungmann.net/start.test.html" rel="nofollow noopener noreferrer">hier</a> kannst du das ganze online bestaunen, beim klick auf eins der bilder in der mitte geht das linkziel entweder im gleichen fenster/tab auf oder es öffnet sich ein neues UND der rahmen um das bild erscheint.</p> </blockquote> <p>Schau dir deinen Code mal genau an. Am besten rückst du den Code mal mit <a href="http://jsbeautifier.org/" rel="nofollow noopener noreferrer">jsbeautifier.org</a> ein, um die Verschachtelung der Kontrollstrukturen zu sehen. Du liest aus location.hash einen Wert und suchst anhand dessen ein Element im DOM. Wenn dieses existiert, so fokussierst du es in der Annahme, es hätte eine focus-Methode.</p> <p>Falls das alles zutrifft und geklappt hat, dann durchläufst du alle Links und verpasst ihnen einen keyup-Handler. Was bedeutet, dass der Code nur ausgeführt wird, wenn die Seite mit #foo aufgerufen wird unter der Voraussetzung, dass foo die ID eines existierenden Elements ist. Dies trifft nicht zu, wenn ich einfach die obige Seite aufrufe.</p> <p>Im Übrigen sehe ich dort keinen Link mit target="_blank" oder ähnliches, außerdem bin ich gerade an einem Mac und die dortigen Browser heben Links beim Klicken nicht mit eine Umrandung hervor (ob mit oder ohne dein Script).</p> <p>Davon abgesehen gibt es die CSS-Eigenschaft <a href="http://de.selfhtml.org/css/eigenschaften/rahmen.htm#outline@title=outline" rel="nofollow noopener noreferrer">http://de.selfhtml.org/css/eigenschaften/rahmen.htm#outline@title=outline</a>, welche in neueren Browsern die Umrandung von fokussierten Links regelt (a:focus, a:active). JavaScript ist dafür eigentlich nicht nötig.</p> <p>Mathias</p> mit eurer hilfe schwer erarbeitet, aber funktioniert nicht... Fri, 30 Sep 11 18:14:54 Z https://forum.selfhtml.org/self/2011/sep/29/mit-eurer-hilfe-schwer-erarbeitet-aber-funktioniert-nicht/1527134#m1527134 https://forum.selfhtml.org/self/2011/sep/29/mit-eurer-hilfe-schwer-erarbeitet-aber-funktioniert-nicht/1527134#m1527134 <p>moinmoin molily,</p> <blockquote> <blockquote> <p>nä, tut sie nicht ABER, und das ist mein irrtum, die andere auch nicht. <a href="http://jungmann.net/start.test.html" rel="nofollow noopener noreferrer">hier</a> kannst du das ganze online bestaunen, beim klick auf eins der bilder in der mitte geht das linkziel entweder im gleichen fenster/tab auf oder es öffnet sich ein neues UND der rahmen um das bild erscheint.</p> </blockquote> <p>Schau dir deinen Code mal genau an. Am besten rückst du den Code mal mit <a href="http://jsbeautifier.org/" rel="nofollow noopener noreferrer">jsbeautifier.org</a> ein, um die Verschachtelung der Kontrollstrukturen zu sehen.</p> </blockquote> <p>schönes tool...</p> <blockquote> <p>Du liest aus location.hash einen Wert und suchst anhand dessen ein Element im DOM. Wenn dieses existiert, so fokussierst du es in der Annahme, es hätte eine focus-Methode.</p> </blockquote> <p>voooorsicht, diese annahme hatte nicht ich, denn so etwas kann ich nicht annehmen, mir fehlen noch die voraussetzuingen.</p> <blockquote> <p>Falls das alles zutrifft und geklappt hat, dann durchläufst du alle Links und verpasst ihnen einen keyup-Handler. Was bedeutet, dass der Code nur ausgeführt wird, wenn die Seite mit #foo aufgerufen wird unter der Voraussetzung, dass foo die ID eines existierenden Elements ist. Dies trifft nicht zu, wenn ich einfach die obige Seite aufrufe.</p> </blockquote> <p>ok, das erklärt aber wozu ich die funktion tatsächlich benötige :) danke für deine erklärung! ich verschicke nämlich an meine pucklige verwandschaft und freunde, die ich mir ausgesucht habe und freunde, die mich ausgesucht haben links in dieser art: <a href="http://jungmann.net/#nopuresw" rel="nofollow noopener noreferrer">http://jungmann.net/#nopuresw</a> und diese hübsche funktion fokusiert diese teile, so dass sie die mitgegebenen css eigenschaften erhalten und alle sehen was ich ihnen meinen will :) subba!</p> <blockquote> <p>Im Übrigen sehe ich dort keinen Link mit target="_blank"</p> </blockquote> <p>musst du auch nicht, denn das hängt doch auch von den einstellungen im browser ab...</p> <blockquote> <p>oder ähnliches, außerdem bin ich gerade an einem Mac und die dortigen Browser heben Links beim Klicken nicht mit eine Umrandung hervor (ob mit oder ohne dein Script).</p> </blockquote> <p>das ist mal echt cool und nimmt den ganzen <a href="https://forum.selfhtml.org/?t=207205&m=1407959" rel="noopener noreferrer">"...daß du dem Nutzer eine vom Browser bereitgestellte Orientierungsmöglichkeit wegnehmen willst, egal ob es ihm passt."</a> verfechtern die luft aus den segeln, denn schließlich gibt's auch noch andere möglichkeiten den surfer auf das aufmerksam zu machen, was er genau so gut aus seiner erinnerung kramen könnte...</p> <blockquote> <p>Davon abgesehen gibt es die CSS-Eigenschaft <a href="http://de.selfhtml.org/css/eigenschaften/rahmen.htm#outline@title=outline" rel="nofollow noopener noreferrer">http://de.selfhtml.org/css/eigenschaften/rahmen.htm#outline@title=outline</a>, welche in neueren Browsern die Umrandung von fokussierten Links regelt (a:focus, a:active). JavaScript ist dafür eigentlich nicht nötig.</p> </blockquote> <p>javascript ist kein bisschen <a href="http://de.wikipedia.org/wiki/Fubar" rel="nofollow noopener noreferrer">fuuuuubaaaar</a>! allerdings liegt mir css wesentlich besser und was soll ich sagen, (?) das funktioniert geradezu oberprima!</p> <p>thx</p> <p><a href="http://www.jungmann.net/start.blog.html#mumin" rel="nofollow noopener noreferrer">mfg</a> <a href="http://www.jungmann.net/#nopuresw" rel="nofollow noopener noreferrer">torsten</a></p> <div class="signature">-- <br> Shakespeare sagt: To be or not to be / Sartre sagt: To be is to do / Camus sagt: To do is to be / Sinatra singt: Do be do be do </div> mit eurer hilfe schwer erarbeitet, aber funktioniert nicht... Thu, 29 Sep 11 20:34:22 Z https://forum.selfhtml.org/self/2011/sep/29/mit-eurer-hilfe-schwer-erarbeitet-aber-funktioniert-nicht/1527136#m1527136 https://forum.selfhtml.org/self/2011/sep/29/mit-eurer-hilfe-schwer-erarbeitet-aber-funktioniert-nicht/1527136#m1527136 <p>Hallo,</p> <blockquote> <blockquote> <p>was ist da faul?<br> ...daß du dem Nutzer eine vom Browser bereitgestellte Orientierungsmöglichkeit wegnehmen willst, egal ob es ihm passt.</p> </blockquote> </blockquote> <p>danke, ich habe gerade überlegt, wie ich das am besten formulieren sollte.</p> <p>Ciao,<br>  Martin</p> <div class="signature">-- <br> Wer im Steinhaus sitzt, soll nicht mit Gläsern werfen.<br> Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:( </div>