Build New HTML5 Attributes for Hyperlinks: download, media, and ping

View: 244    Dowload: 0   Comment: 0   Post by: hanhga  
Author: none   Category: HTML-CSS template   Fields: Other

10 point/2 review File has been tested

Hyperlinks have been around since the dawn of the Web. But with the dawn of HTML5, three new attributes have been added to the humble tag to keep existing attributes like href, rel, and others company.

Introduction

Hyperlinks have been around since the dawn of the Web. But with the dawn of HTML5, three new attributes have been added to the humble <a> tag to keep existing attributes like hrefrel, and others company.

The new attributes are: downloadmedia, and ping. In this article, we’ll take a quick look at what these new attributes are, and how they can be used once browser support improves.

The download Attribute

The download attribute is new in HTML5. It supplements the existing href attribute by telling the browser that the resource the href points to should be downloaded directly, instead of visited (which could happen with a file that the browser can open, like a PDF). The value of the download attribute is used for the name of the file that is downloaded.

The download attribute can be the same as the file referenced in the href attribute, but it doesn’t have to be. Being able to have different values for href and download can come in handy. For example, you might need to generate unique files dynamically on the server for monthly or yearly reports on a per user basis, but still present the user with a meaningful filename for when they download a file. Because the download attribute can be different to the href, this is pretty easy to do:

<a href="files/eid987jdien2i.pdf"
   download="Monthly Report for March 2014.pdf">Download March 2014 Report</a>

When a user clicks the download link, they’ll download Monthly Report for March 2014.pdf rather than the endearingly named eid987jdien2i.pdf.

In theory there aren’t any restrictions on what you can enter for the download attribute. In practice this isn’t quite true, as you’ll need to bear in mind the restrictions operating systems impose on which characters can’t be used in filenames — such as the backslash ‘\’ on Windows, or the forward slash ‘/’ on *nix and OS X — and that the browser may adjust the download attribute’s value accordingly. It’s also worth noting that the download attribute’s value can be overridden by the Content-Disposition HTTP header’s filename parameter.

The download attribute can be used with blob and data URI’s, which makes it useful where users need to be able to save dynamic content they’ve created through your web application (e.g. drawing applications).

Typically you would set the href attribute to the blob or data URI, then, as with the monthly report example earlier, set the download attribute to a more meaningful file name. The following example shows how you can do this when using the Canvas API.

Here is our HTML:

<section>
    <canvas id="c" width="400" height="400"></canvas>
    <footer>
        <a id="download-canvas" href="#">Download</a>
    </footer>
</section>

And the JavaScript:

(function() {
    var canvas = document.getElementById('c'),
        cxt = canvas.getContext('2d'),
        downloadLink = document.getElementById('download-canvas');

    cxt.fillRect(100, 100, 200, 200);
    cxt.clearRect(150, 150, 100, 100);

    downloadLink.href = canvas.toDataURL();
    downloadLink.download = "squares.png";
})();

Browser Support for the download Attribute

While you may be thinking that the download attribute heralds the end of you having to implement file download logic on the server, unfortunately it isn’t fully supported across all major browsers. At the time of writing, Safari and IE (both desktop and mobile) do not support this attribute.

The media Attribute

If you’ve worked with CSS, then you’ve come across the media attribute before, and you’ve probably used it on the link tag. In HTML5 the media attribute can now also be applied to a hyperlink. It works in the same way, and its value can be any valid media query.

When applied to the <a> tag, the media attribute is used in a purely advisory capacity. It could be useful, for example, in situations where you provide device-specific downloads, such as for desktop and mobile wallpapers:

<ul>
    <li>
        <a href="download/320" media="min-width: 320px">
            <img src="files/320.jpg" alt="">
        </a>
    </li>
    <li>
        <a href="download/1382" media="min-width: 1382px">
            <img src="files/1382.jpg" alt="">
        </a>
    </li>
</ul>

It could also be applied to those ‘Print’ links you often see on long, multi-page articles, where you follow the link to get the whole article on one page formatted for printing:

<footer>
    <p>Page 1 of 6 <a href="/print/1234" media="print">Print All</a></p>
</footer>

Browser Support for the media Attribute

As of this writing, it doesn’t seem that there is much support, if any, for this attribute on hyperlinks. It’s listed as an HTML5 attribute on MDN’s HTML reference but it’s not listed as a valid attribute on the WHATWG spec or on W3C.

The ping Attribute

Finally, let’s look at the new ping attribute. This attribute takes a space-separated list of URL’s that are to be pinged should the user successfully navigate to the href of the hyperlink. Or, to put it another way, it provides native support for click and link tracking:

<ul>
    <li>
        <a href="/products/blaster" ping="/track/products/blaster">Blasters</a>
    </li>
    <li>
        <a href="/products/light-sabres" ping="/track/products/light-sabres">Light sabres (choice of colours)</a>
    </li>
</ul>

Browser Support for the ping Attribute

Current browser support for ping is mixed. Safari and Chrome do support it, Firefox has support for it but by default it is disabled, and IE and Opera do not support it. It’s also worth noting that the ping attribute is not in the current W3C HTML5 draft spec, but it is in the WHATWG HTML5 spec.

Build New HTML5 Attributes for Hyperlinks: download, media, and ping

Build New HTML5 Attributes for Hyperlinks: download, media, and ping Posted on 01-04-2016  Hyperlinks have been around since the dawn of the Web. But with the dawn of HTML5, three new attributes have been added to the humble tag to keep existing attributes like href, rel, and others company. 5/10 244

Comment:

To comment you must be logged in members.

Files with category

 

File suggestion for you

File top downloads

logo codetitle
Codetitle.com - library source code to share, download the file to the community
Copyright © 2015. All rights reserved. codetitle.com Develope by Vinagon .Ltd