tag:forum.selfhtml.org,2005:/self
parse_url() emulieren – SELFHTML-Forum
2009-06-10T09:35:53Z
https://forum.selfhtml.org/self/2009/jun/10/parse_url-emulieren/1370454#m1370454
Edgar Ehritt
2009-06-09T22:34:26Z
2009-06-09T22:34:26Z
parse_url() emulieren
<p>Hallo,</p>
<p>es geht mir nur darum, ob ich gerade eine Umstandsprofessur mache:</p>
<pre><code class="block language-javascript"><span class="token keyword">function</span> <span class="token function">parse_url</span><span class="token punctuation">(</span><span class="token parameter">url</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">var</span> r<span class="token operator">=</span><span class="token keyword">new</span> <span class="token class-name">Array</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span>s<span class="token operator">=</span><span class="token string">''</span><span class="token punctuation">;</span>
s <span class="token operator">=</span>url<span class="token punctuation">.</span><span class="token function">split</span><span class="token punctuation">(</span><span class="token string">'?'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
r<span class="token punctuation">[</span><span class="token string">'query'</span><span class="token punctuation">]</span> <span class="token operator">=</span>s<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token operator">?</span> s<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">;</span>
s <span class="token operator">=</span>s<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span><span class="token function">split</span><span class="token punctuation">(</span><span class="token string">'://'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
r<span class="token punctuation">[</span><span class="token string">'scheme'</span><span class="token punctuation">]</span><span class="token operator">=</span>s<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token operator">?</span> s<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">;</span>
s <span class="token operator">=</span>s<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token operator">?</span> s<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token operator">:</span> s<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
s <span class="token operator">=</span>s<span class="token punctuation">.</span><span class="token function">split</span><span class="token punctuation">(</span><span class="token string">'/'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
s<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token operator">=</span>s<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span><span class="token function">split</span><span class="token punctuation">(</span><span class="token string">':'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
r<span class="token punctuation">[</span><span class="token string">'host'</span><span class="token punctuation">]</span> <span class="token operator">=</span>s<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
r<span class="token punctuation">[</span><span class="token string">'port'</span><span class="token punctuation">]</span> <span class="token operator">=</span>s<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token operator">?</span> s<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">;</span>
<span class="token keyword">delete</span><span class="token punctuation">(</span>s<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
r<span class="token punctuation">[</span><span class="token string">'path'</span><span class="token punctuation">]</span> <span class="token operator">=</span>s<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token operator">?</span> s<span class="token punctuation">.</span><span class="token function">join</span><span class="token punctuation">(</span><span class="token string">'/'</span><span class="token punctuation">)</span> <span class="token operator">:</span> <span class="token string">'/'</span><span class="token punctuation">;</span>
<span class="token keyword">return</span><span class="token punctuation">(</span>r<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre>
<p>Geht es einfacher?</p>
<p>Gruß aus Berlin!<br>
eddi</p>
<div class="signature">-- <br>
VEB Opel, Geruchsproben und Stasi 2.0, Zensur...<br>
IHR WOLLTET MERKEL!
</div>
https://forum.selfhtml.org/self/2009/jun/10/parse_url-emulieren/1370455#m1370455
bozo20
2009-06-09T22:42:49Z
2009-06-09T22:42:49Z
parse_url() emulieren
<blockquote>
<p>Geht es einfacher?</p>
</blockquote>
<p><a href="http://de.selfhtml.org/javascript/objekte/location.htm@title=http://de.selfhtml.org/javascript/objekte/location.htm" rel="nofollow noopener noreferrer">http://de.selfhtml.org/javascript/objekte/location.htm@title=http://de.selfhtml.org/javascript/objekte/location.htm</a> scheint alles abzudecken</p>
https://forum.selfhtml.org/self/2009/jun/10/parse_url-emulieren/1370456#m1370456
Edgar Ehritt
2009-06-09T23:02:27Z
2009-06-09T23:02:27Z
parse_url() emulieren
<p>Hallo erstmal!</p>
<blockquote>
<p><a href="http://de.selfhtml.org/javascript/objekte/location.htm@title=http://de.selfhtml.org/javascript/objekte/location.htm" rel="nofollow noopener noreferrer">http://de.selfhtml.org/javascript/objekte/location.htm@title=http://de.selfhtml.org/javascript/objekte/location.htm</a> scheint alles abzudecken</p>
</blockquote>
<p><code class="language-javascript">location</code> ist das Objekt, was vom Browser zur Verfügung gestellt wird. Strings aus Eingaben lassen sich nach meinem Kenntnisstand damit jedoch nicht analysieren und es scheidet damit leider aus. ;(</p>
<p>Gruß aus Berlin!<br>
eddi</p>
<div class="signature">-- <br>
VEB Opel, Geruchsproben und Stasi 2.0, Zensur...<br>
IHR WOLLTET MERKEL!
</div>
https://forum.selfhtml.org/self/2009/jun/10/parse_url-emulieren/1370457#m1370457
gast42
2009-06-10T04:36:16Z
2009-06-10T04:36:16Z
parse_url() emulieren
<blockquote>
<p><code class="language-javascript">location</code> ist das Objekt, was vom Browser zur Verfügung gestellt wird. Strings aus Eingaben lassen sich nach meinem Kenntnisstand damit jedoch nicht analysieren und es scheidet damit leider aus. ;(</p>
</blockquote>
<p>dann erzeuge einfach einen Link mit dieser URL als Ziel:</p>
<pre><code class="block language-javascript">
<span class="token keyword">var</span> a<span class="token operator">=</span>document<span class="token punctuation">.</span><span class="token function">createElement</span><span class="token punctuation">(</span><span class="token string">"a"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
a<span class="token punctuation">.</span>href<span class="token operator">=</span><span class="token constant">URL</span><span class="token punctuation">;</span>
<span class="token keyword">var</span> parameter<span class="token operator">=</span>a<span class="token punctuation">.</span>search<span class="token punctuation">;</span>
<span class="token operator">...</span>
</code></pre>
<p>zwingt dich doch niemand, den Link auch ins DOM zu hängen</p>
https://forum.selfhtml.org/self/2009/jun/10/parse_url-emulieren/1370458#m1370458
Edgar Ehritt
2009-06-10T09:35:53Z
2009-06-10T09:35:53Z
parse_url() emulieren
<p>Hallo erstmal!</p>
<pre><code class="block language-javascript">
<span class="token keyword">var</span> a<span class="token operator">=</span>document<span class="token punctuation">.</span><span class="token function">createElement</span><span class="token punctuation">(</span><span class="token string">"a"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
a<span class="token punctuation">.</span>href<span class="token operator">=</span><span class="token constant">URL</span><span class="token punctuation">;</span>
<span class="token function">alert</span><span class="token punctuation">(</span>a<span class="token punctuation">.</span>protocol<span class="token operator">+</span><span class="token string">' '</span><span class="token operator">+</span>a<span class="token punctuation">.</span>host<span class="token operator">+</span><span class="token string">' '</span><span class="token operator">+</span>a<span class="token punctuation">.</span>pathname<span class="token operator">+</span><span class="token string">' '</span><span class="token operator">+</span>a<span class="token punctuation">.</span>search<span class="token operator">+</span><span class="token string">' '</span><span class="token operator">+</span>a<span class="token punctuation">.</span>port<span class="token punctuation">)</span>
</code></pre>
<p>sieht sehr, sehr gut aus - nur der IE 6 spielt da nicht mit. ;(<br>
Danke!</p>
<p>Gruß aus Berlin!<br>
eddi</p>
<div class="signature">-- <br>
VEB Opel, Geruchsproben und Stasi 2.0, Zensur...<br>
IHR WOLLTET MERKEL!
</div>