链接在这里:http://www.sergiopereira.com/articles/prototype.js.html#EnumeratingArrays
这个showLocalLinks例子有问题,在哪个浏览器里都显示不出结果。
javascript
{113 3045 <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-javascript" data-lang="javascript"><span class="line"><span class="cl"><span class="kd">function</span> <span class="nx">showLocalLinks</span><span class="p">(</span><span class="nx">paragraph</span><span class="p">){</span>
</span></span><span class="line"><span class="cl"><span class="nx">paragraph</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="nx">paragraph</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="kd">var</span> <span class="nx">links</span> <span class="o">=</span> <span class="nx">$A</span><span class="p">(</span><span class="nx">paragraph</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s1">'a'</span><span class="p">));</span>
</span></span><span class="line"><span class="cl"><span class="c1">//find links that do not start with 'http'
</span></span></span><span class="line"><span class="cl"><span class="kd">var</span> <span class="nx">localLinks</span> <span class="o">=</span> <span class="nx">links</span><span class="p">.</span><span class="nx">findAll</span><span class="p">(</span> <span class="kd">function</span><span class="p">(</span><span class="nx">link</span><span class="p">){</span>
</span></span><span class="line"><span class="cl"><span class="kd">var</span> <span class="nx">start</span> <span class="o">=</span> <span class="nx">link</span><span class="p">.</span><span class="nx">href</span><span class="p">.</span><span class="nx">substring</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">4</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="k">return</span> <span class="nx">start</span> <span class="o">!=</span><span class="s1">'http'</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="p">});</span>
</span></span><span class="line"><span class="cl"><span class="c1">//now the link texts
</span></span></span><span class="line"><span class="cl"><span class="kd">var</span> <span class="nx">texts</span> <span class="o">=</span> <span class="nx">localLinks</span><span class="p">.</span><span class="nx">pluck</span><span class="p">(</span><span class="s1">'innerHTML'</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="c1">//get them in a single string
</span></span></span><span class="line"><span class="cl"><span class="kd">var</span> <span class="nx">result</span> <span class="o">=</span> <span class="nx">texts</span><span class="p">.</span><span class="nx">inspect</span><span class="p">();</span>
</span></span><span class="line"><span class="cl"><span class="nx">alert</span><span class="p">(</span><span class="nx">result</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div>}html
{101 2531 <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p"><</span><span class="nt">p</span> <span class="na">id</span><span class="o">=</span><span class="s">"someText"</span><span class="p">></span>
</span></span><span class="line"><span class="cl">This <span class="p"><</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">"http://othersite.com/page.html"</span><span class="p">></span>text<span class="p"></</span><span class="nt">a</span><span class="p">></span> has
</span></span><span class="line"><span class="cl">a <span class="p"><</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">"#localAnchor"</span><span class="p">></span>lot<span class="p"></</span><span class="nt">a</span><span class="p">></span> of
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">"#otherAnchor"</span><span class="p">></span>links<span class="p"></</span><span class="nt">a</span><span class="p">></span>. Some are
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">"http://wherever.com/page.html"</span><span class="p">></span>external<span class="p"></</span><span class="nt">a</span><span class="p">></span>
</span></span><span class="line"><span class="cl">and some are <span class="p"><</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">"#someAnchor"</span><span class="p">></span>local<span class="p"></</span><span class="nt">a</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"></</span><span class="nt">p</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">input</span> <span class="na">type</span><span class="o">=</span><span class="s">button</span> <span class="na">value</span><span class="o">=</span><span class="s">"Find Local Links"</span> <span class="na">onclick</span><span class="o">=</span><span class="s">"showLocalLinks('someText')"</span><span class="p">></span></span></span></code></pre></div>}这个例子的意思应该是取出段落里面的本地链接,原理是链接开头不是http的就算,但是段落里面使用的#链接形式,无论在IE还是firefox里,都会被解释为带有http的形式,所以这个例子的结果永远都是空。
解决方法是把其中#开头的链接改为"javascript:;",就可以看到效果了。
后话,也有可能是因为我用Apache调试的原因,#xxx全被解释为"http://localhost/#xxx"了。
Technorati : Prototype, javascript