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
|
// JavaScript
"use strict";
const oGrammalecteAPI = {
// functions callable from within pages
sVersion: "1.0",
parse: function (arg1) {
let xNode = null;
if (typeof(arg1) === 'string') {
if (document.getElementById(arg1)) {
xNode = document.getElementById(arg1);
} else {
this.parseText(arg1);
}
}
else if (arg1 instanceof HTMLElement) {
xNode = arg1;
}
if (xNode) {
console.log("xnode");
if (xNode.tagName == "INPUT" || xNode.tagName == "TEXTAREA" || xNode.isContentEditable) {
this.parseNode(xNode);
}
else if (xNode.tagName == "IFRAME") {
this.parseText(xNode.contentWindow.document.body.innerText);
}
else {
this.parseText(xNode.innerText);
}
}
},
parseNode: function (xNode) {
console.log("parseNode");
if (xNode instanceof HTMLElement) {
let xEvent = new CustomEvent("GrammalecteCall", { detail: {sCommand: "parseNode", xNode: xNode} });
document.dispatchEvent(xEvent);
} else {
console.log("[Grammalecte API] Error: parameter is not a HTML node.");
}
},
parseText: function (sText) {
console.log("parseText");
if (typeof(sText) === "string") {
let xEvent = new CustomEvent("GrammalecteCall", { detail: {sCommand: "parseText", sText: sText} });
document.dispatchEvent(xEvent);
} else {
console.log("[Grammalecte API] Error: parameter is not a text.");
}
}
|
|
|
<
|
|
>
>
<
<
|
>
>
>
>
>
>
|
<
>
|
>
|
>
>
>
>
>
>
>
<
<
|
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
|
// JavaScript
"use strict";
const oGrammalecteAPI = {
// functions callable from within pages
sVersion: "1.0",
openPanel: function (arg1) {
let xNode = null;
if (typeof(arg1) === 'string') {
if (document.getElementById(arg1)) {
xNode = document.getElementById(arg1);
} else {
this.openPanelForText(arg1);
}
}
else if (arg1 instanceof HTMLElement) {
xNode = arg1;
}
if (xNode) {
if (xNode.tagName == "INPUT" || xNode.tagName == "TEXTAREA" || xNode.tagName == "IFRAME" || xNode.isContentEditable) {
this.openPanelForNode(xNode);
} else {
this.openPanelForText(xNode.innerText);
}
}
},
openPanelForNode: function (xNode) {
if (xNode instanceof HTMLElement) {
let xEvent = new CustomEvent("GrammalecteCall", { detail: {sCommand: "openPanelForNode", xNode: xNode} });
document.dispatchEvent(xEvent);
} else {
console.log("[Grammalecte API] Error: parameter is not a HTML node.");
}
},
openPanelForText: function (sText) {
if (typeof(sText) === "string") {
let xEvent = new CustomEvent("GrammalecteCall", { detail: {sCommand: "openPanelForText", sText: sText} });
document.dispatchEvent(xEvent);
} else {
console.log("[Grammalecte API] Error: parameter is not a text.");
}
},
parseNode: function (xNode) {
if (xNode instanceof HTMLElement) {
let xEvent = new CustomEvent("GrammalecteCall", { detail: {sCommand: "parseNode", xNode: xNode} });
document.dispatchEvent(xEvent);
} else {
console.log("[Grammalecte API] Error: parameter is not a HTML node.");
}
},
parseText: function (sText) {
if (typeof(sText) === "string") {
let xEvent = new CustomEvent("GrammalecteCall", { detail: {sCommand: "parseText", sText: sText} });
document.dispatchEvent(xEvent);
} else {
console.log("[Grammalecte API] Error: parameter is not a text.");
}
}
|