1. 程式人生 > 實用技巧 >HTML5 A連結

HTML5 A連結

1.基本使用

href:規定連結的目標 URL。
target屬性有以下幾個值:
_self:預設,當前頁面跳轉。
_blank:新視窗開啟。
_parent:在父視窗中開啟連結。
_top:在當前窗體開啟連結,並替換當前的整個窗體(框架頁)。
framename:在指定的框架中開啟被連結文件。通俗的說在特定新視窗開啟

<a href="http://www.baidu.com">百度一下 (預設,當前頁面跳轉。)</a>
<br />
<a href="http://www.baidu.com" target="_blank">百度一下 新視窗開啟</a>
<br />
<a href="http://www.baidu.com" target="_1">百度一下 特定視窗開啟</a>
<br />
<a href="http://www.taobao.com" target="_1">淘寶 特定視窗開啟</a>

這裡解釋一下:target="_blank"和target="_1"都會使用新視窗開啟目標連結,但是target="_blank"每次點選都會建立新的視窗,而target="_1"只會初次點選時開啟新視窗,以後所有使用target="_1"的視窗都會覆蓋剛剛開啟的視窗,相當於是一個被命名的新視窗開啟。所以後面2個連結重複點選會在一個視窗中相互覆蓋

2.下載檔案

(1)當目標 URL返回的文件型別是html,img之類能被瀏覽器直接開啟的檔案時,瀏覽器會直接預覽這個檔案。
(2)如果返回的文件型別瀏覽器無法直接開啟,例如表格,pdf,壓縮包,會彈窗提示使用者是否儲存。
(3)如果想下載img之類的文件,則需要新增download屬性。他的值可以不設定,預設是連結的檔名,如果設定了值,則這個值就是檔案下載時的檔名
(4)跨域時 download 屬性無效,即:無法下載跨域伺服器的圖片資源,點選後只能預覽。對於pdf文件這類瀏覽器無法識別的文件,跨域仍能下載,但是download屬性設定的檔名無效。

注意:請在伺服器環境測試,本地環境開啟是無效的。
注意:無法下載跨域的圖片資原始檔,只能預覽

<body>
    <a href="./resource/kof.jpg">預覽圖片</a>
    <br />
    <!-- 檔名預設為 熱血足球.jpg-->
    <a href="./resource/熱血足球.xlsx">下載文件</a>
    <br />
    <!-- 檔名預設為 kof.jpg-->
    <a href="./resource/kof.jpg" download>下載圖片</a>
    <br />
    <!-- 檔名預設為 xxx.jpg-->
    <a href="./resource/kof.jpg" download="xxx">下載圖片 (改名)</a>
    <br />
    <!-- 檔名預設為 a.jpg-->
    <a href="./resource/熱血足球.xlsx" download="a">下載文件(改名)</a>
</body>

跨域時:

<body>
    <!-- 跨域時 download 屬性無效-->

    <!-- 下載檔名 熱血足球.xlsx-->
    <a href="http://127.0.0.1:8090/熱血足球.xlsx" download="xxx">跨域下載文件</a>
    <br />
    <!-- 下載檔名 熱血足球.xlsx 改名無效-->
    <a href="http://127.0.0.1:8090/熱血足球.xlsx" download="xxx">跨域下載文件 (改名)</a>
    <br />
    <!-- 無法下載 直接預覽開啟-->
    <a href="http://127.0.0.1:8090/kof.jpg" download="xxx">跨域下載圖片 (改名)</a>
</body>

3.使用js下載資源

如果是資源是瀏覽器無法直接開啟的型別,那麼直接跳轉到指定url即可,程式碼如下

<script>
    var btn = document.querySelector('#btn')
    btn.onclick = function(){
        window.location = 'http://127.0.0.1:8090/熱血足球.xlsx'
    }
</script>

如果資源是圖片型別,這種方法就會直接預覽圖片,需要建立一個a連結,設定download屬性來下載

注意:無法下載跨域的圖片資原始檔,只能預覽

<script>
    var btn = document.querySelector('#btn')
    btn.onclick = function(){
        //window.location = 'http://127.0.0.1:8090/kof.jpg'
        downloadImg('./resource/kof.jpg','filename')
    }

    function downloadImg(url,name){
        //建立a標籤
        var node_a = document.createElement('a')
        //新增屬性
        node_a.innerHTML = '下載圖片'
        node_a.href = url
        node_a.download = name || ''
        //觸發點選事件
        console.log('觸發點選事件')
        node_a.click()
    }
</script>