12345678910111213141516171819202122232425262728293031323334 |
- /**
- * Returns a reference to the element matching the attr URL fragment value
- * @method getElementByReference
- * @memberof axe.commons.dom
- * @instance
- * @param {Element} node
- * @param {String} attr Attribute name (href)
- * @return {Element}
- */
- function getElementByReference(node, attr) {
- let fragment = node.getAttribute(attr);
- if (!fragment) {
- return null;
- }
- if (fragment.charAt(0) === '#') {
- fragment = decodeURIComponent(fragment.substring(1));
- } else if (fragment.substr(0, 2) === '/#') {
- fragment = decodeURIComponent(fragment.substring(2));
- }
- let candidate = document.getElementById(fragment);
- if (candidate) {
- return candidate;
- }
- candidate = document.getElementsByName(fragment);
- if (candidate.length) {
- return candidate[0];
- }
- return null;
- }
- export default getElementByReference;
|