diff --git a/misc/tableheader.js b/misc/tableheader.js index 47201b2691..23a1f4cbcc 100644 --- a/misc/tableheader.js +++ b/misc/tableheader.js @@ -78,9 +78,20 @@ Drupal.tableHeader = function (table) { Drupal.tableHeader.prototype.eventhandlerRecalculateStickyHeader = function (event) { var self = this; var calculateWidth = event.data && event.data.calculateWidth; + var callHeaderOffsetFunction = function(accessor) { + accessor = accessor.split('.'); + var callback = window; + for (var i = 0, len = accessor.length - 1; i < len; i++) { + callback = callback[accessor[i]]; + } + if (typeof callback[accessor[accessor.length - 1]] === "function") { + return callback[accessor[accessor.length - 1]](); + } + return 0; + }; // Reset top position of sticky table headers to the current top offset. - this.stickyOffsetTop = Drupal.settings.tableHeaderOffset ? eval(Drupal.settings.tableHeaderOffset + '()') : 0; + this.stickyOffsetTop = Drupal.settings.tableHeaderOffset ? callHeaderOffsetFunction(Drupal.settings.tableHeaderOffset) : 0; this.stickyTable.css('top', this.stickyOffsetTop + 'px'); // Save positioning data.