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));