在 JavaScript 中若要撰����址程式非常容易,有��的人都知道要用 location.href �性,而另外�有一� location.replace 可用,功能差不多,但在��上�用是有差�的,我今天就���它�之�的差�。
首先� JavaScript 初�者��清楚的�例,避免��程式。
location 物件的 href 是��性,�性需要直接指定其值,例如:
location.href = 'http://blog.miniasp.com/';
location 物件的 replace 是�方法(method)或函式(function),需要加上刮��入��,例如:
location.replace('http://blog.miniasp.com/');
接著,我用一���的例子�明���用法�直接下��的差�:
<a href="a.htm">a.htm</a>
|
<a href="#" onclick="location.href='a.htm'">location.href='a.htm';</a>
|
<a href="#" onclick="location.replace('a.htm')">location.replace('a.htm')</a>
1. 直接用 <a href="a.htm"> ��的作法
- ��器�送出 Referer �� HTTP Header
- ��器�����的�史�� ( 好���器的 上一� 、 下一� 按�可以�作 )
2. 透� JavaScript 的 location.href 指派�址
- ��器不�送出 Referer �� HTTP Header
- ��器�����的�史�� ( 好���器的 上一� 、 下一� 按�可以�作 )
3. 透� JavaScript 的 location.replace �入�址
- ��器不�送出 Referer �� HTTP Header
- ��器不�����的�史��! ( ��器�����史�� )
---
�解差�後,我再介�一���的�用,�你有更深一�的��。
我需要在��下��案,但有��的人��知道,通常的作法有��:
- �新�窗�行下��作
- ��:��好�,�案�直接�在 Browser �窗中上。
- 缺�:有�後�案下�了,但是�窗��留!
- 在本�直接下�
- ��:��好�,�案�直接下�。
- 缺�:若遇到�案�直接在 User 的��器直接��的��,有可能�� User 等到�案下�完才���,例如有些 PDF �非常大,下�的�段�� Browser �卡死不能�。
- 透�一��藏的 Frame 或 IFrame �行下� ( 直接透� <a> ��的 target 指定 iframe 目� )
- ��:��好�,�案�直接下�,��不好�也不��留�窗。
- 缺�:��不好��案就看不到了,不�可以透��定 Content-Disposition �制下�。
- 缺�:�使用者��下����案,又按下��器上的「回上一�」�,�重新下�上一��案!
- 透�一��藏的 Frame 或 IFrame �行下� ( 透� location.href 指定下�目� )
- ��:��好�,�案�直接下�,��不好�也不��留�窗。
- 缺�:��不好��案就看不到了,不�可以透��定 Content-Disposition �制下�。
- 缺�:�使用者��下����案,又按下��器上的「回上一�」�,�重新下�上一��案!
- 透�一��藏的 Frame 或 IFrame �行下� ( 透� location.replace 指定下�目� )
- ��:��好�,�案�直接下�,��不好�也不��留�窗。
- ��:�使用者��下����案,又按下��器上的「回上一�」�,因�在��器中� frame ������,所以不��生重�下�的�作。
- 缺�:��不好��案就看不到了,不�可以透��定 Content-Disposition �制下�。
由此可知,第 5 �指定下�的方法是最好的!�然是一���的差�,但���上就是有那�一� "眉角" (台�, 小技巧的意思),一�小��分享。^_^
没有评论:
发表评论