textareatabs-8.x-1.x-dev/js/textareatabs.js

js/textareatabs.js
/**
 * @file
 * Contains textareatabs/textareatabs.
 */

(function ($, Drupal) {
  Drupal.behaviors.textAreaTabs = {
    attach: function () {
      $("textarea").on("keydown", {}, this.insertTab);
    },

    /**
     * Based on TTabs from http://interface.eyecon.ro/.
     *
     * @param {Object} e Event
     * @returns {boolean}
     */
    insertTab: function (e) {
      var pressedKey = e.charCode || e.keyCode || -1;
      var oldScrollTop, start, end;

      if (pressedKey === 9) {
        e.preventDefault();
        e.stopPropagation();

        // Save current scroll position for later restoration.
        oldScrollTop = this.scrollTop;

        start = this.selectionStart;
        end = this.selectionEnd;
        this.value = this.value.substring(0, start) + "\t" + this.value.substr(end);
        this.setSelectionRange(start + 1, start + 1);
        this.focus();

        this.scrollTop = oldScrollTop;

        return false;
      }
    }
  };
}(jQuery, Drupal));

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc