<p>
We’ve developed a beautiful widget for the web.
<input type="hidden" role="uploadcare-uploader" />
It can do everything from drag-and-drop to selecting photos from various social networking sites like Facebook.
<input type="hidden" role="uploadcare-uploader" data-tabs="url file" />
</p>
<p>
Draggable:<br>
<img src="https://secure.gravatar.com/avatar/afec5e3f528823759c4b1eb2d26bc0a2" alt="" />
</p>
<ul id="events"></ul>
<script>
window.onload = function() {
  uploadcare.whenReady(function() {
    var $ = uploadcare.jQuery;
    var log = function(text) {
      var time = (new Date()).toLocaleTimeString();
      $('<li>').appendTo('#events').text(time + ' ' + text);
    };
    ['ready', 'started', 'loaded', 'error'].forEach(function(event) {
      var fullEvent = 'uploadcare.uploader.' + event;
      $('@uploadcare-uploader').on(fullEvent, function() {
        log(fullEvent);
      });
    });
    $('@uploadcare-uploader').on('change', function() {
      var value = $(this).val();
      log('change: "' + value + '"');
    });
  });
};
</script>

<p>
We’ve developed a beautiful widget for the web.
<input type="hidden" role="uploadcare-uploader" />
It can do everything from drag-and-drop to selecting photos from various social networking sites like Facebook.
<input type="hidden" role="uploadcare-uploader" data-tabs="facebook file url" />
</p>
<p>
Draggable:<br>
<img src="https://secure.gravatar.com/avatar/afec5e3f528823759c4b1eb2d26bc0a2" alt="" />
</p>
<ul id="events"></ul>
<script>
window.onload = function() {
  uploadcare.whenReady(function() {
    var $ = uploadcare.jQuery;
    var log = function(text) {
      var time = (new Date()).toLocaleTimeString();
      $('<li>').appendTo('#events').text(time + ' ' + text);
    };
    ['ready', 'started', 'loaded', 'error'].forEach(function(event) {
      var fullEvent = 'uploadcare.uploader.' + event;
      $('@uploadcare-uploader').on(fullEvent, function() {
        log(fullEvent);
      });
    });
    $('@uploadcare-uploader').on('change', function() {
      var value = $(this).val();
      log('change: "' + value + '"');
    });
  });
};
</script>

Reorder test widget tabs for great good
Reorder test widget tabs for great good
