tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

attribute-values.js (1235B)


      1 AttributeValueTransforms = {
      2    lowercase: function(value) { return value.toLowerCase(); },
      3    uppercase: function(value) { return value.toUpperCase(); },
      4    alternate_case: function(value) {
      5        var transformedValue = "";
      6        for (var i = 0; i < value.length; i++) {
      7            transformedValue += i % 2 ?
      8                value.charAt(i).toLowerCase() :
      9                value.charAt(i).toUpperCase();
     10        }
     11        return transformedValue;
     12    },
     13    // TODO: Should we perform this transform too?
     14    // https://github.com/mathml-refresh/mathml/issues/122
     15    // add_leading_and_trimming_whitespace: function(value) {
     16    //    var space = "\0020\0009\000A\000D";
     17    //    return `${space}${space}${value}${space}${space}`;
     18    // },
     19 };
     20 
     21 function TransformAttributeValues(transform, attributeNames) {
     22    if (typeof attributeNames === "string")
     23        attributeNames = [attributeNames];
     24    attributeNames.forEach(name => {
     25        Array.from(document.querySelectorAll(`[${name}]`)).forEach(element => {
     26            var value = element.getAttribute(name);
     27            var transformedValue = AttributeValueTransforms[transform](value);
     28            element.setAttribute(name, transformedValue);
     29        });
     30    });
     31 }