Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | 1x 1x 60x 59x 59x 59x 59x 59x 59x 59x 59x 10x 59x 49x 59x 1x 59x 1x 59x 1x 59x 1x 59x 1x 60x 59x 58x 59x 2x 59x 1x 59x 1x 59x 1x 59x 2x 59x 1x | import { isElementOfType } from '../../domUtils/isElementOfType';
import type { FormatHandler } from '../FormatHandler';
import type { LinkFormat } from 'roosterjs-content-model-types';
/**
* @internal
*/
export const linkFormatHandler: FormatHandler<LinkFormat> = {
parse: (format, element) => {
if (isElementOfType(element, 'a')) {
const name = element.name;
const href = element.getAttribute('href'); // Use getAttribute to get original HREF but not the resolved absolute url
const target = element.target;
const rel = element.rel;
const id = element.id;
const className = element.className;
const title = element.title;
if (name) {
format.name = name;
}
if (href) {
format.href = href;
}
if (target) {
format.target = target;
}
if (id) {
format.anchorId = id;
}
if (rel) {
format.relationship = rel;
}
if (title) {
format.anchorTitle = title;
}
if (className) {
format.anchorClass = className;
}
}
},
apply: (format, element) => {
if (isElementOfType(element, 'a') && (format.href || format.name)) {
if (format.href) {
element.href = format.href;
}
if (format.name) {
element.name = format.name;
}
if (format.target) {
element.target = format.target;
}
if (format.anchorId) {
element.id = format.anchorId;
}
if (format.anchorClass) {
element.className = format.anchorClass;
}
if (format.anchorTitle) {
element.title = format.anchorTitle;
}
if (format.relationship) {
element.rel = format.relationship;
}
}
},
};
|