Closed yumaikas closed 4 years ago
Apparently this was related to nested views? I know that removing them fixed the issue.
Hi @yumaikas ! Thanks for reporting this!
gotoB throws this error when, in the process of making an update on a view, it finds a mismatch between the HTML it finds versus that which it expects to find. While this could still be a gotoB bug (which explains the error message), in my experience, most of the time it's the result of writing invalid markup. When invalid markup is generated, the browser autocorrects it, but gotoB doesn't get the memo and then it blows up, since its map of the HTML in question is different from the actual territory.
In the case in question, I think the issue is that you're putting a <div>
inside of a <table>
, as its first element. According to the standard, <div>
can go only inside a <td>
, but not straight inside the <table>
. I'm pasting the error at the bottom of the message in a properly formatted way, so it's a bit more readable (I'll actually do that in code soon). You can see this at the top of the oldView
field. Going into the weeds, the actual HTML of the view before the redraw shows that the <div>
is outside of the <table>
, but the expected HTML (expected by gotoB) has the <div>
inside.
If the spirit moves you, please try again taking out the <div>
from the <table>
, but with nested views, and let me know if that solves the issue!
In the meantime, I'll do the following on my end:
{
"action": "sequence",
"position": 11,
"diffitem": "rem <div {\"id\":\"в2\",\"path-в\":\"State:commit:comments:0\"}",
"id": "в1",
"where": [
3,
0,
0
],
"k": 2,
"innerHTML": "<h1>List Proto</h1><style>#topline .wide-cell{min-width:300px;}</style><h3>Items:</h3><div id=\"в2\" path-в=\"State:commit:comments:0\"></div><div id=\"в3\" path-в=\"State:commit:comments:1\"></div><div id=\"в4\" path-в=\"State:commit:comments:2\"></div><div id=\"в5\" path-в=\"State:commit:comments:3\"></div><div id=\"в6\" path-в=\"State:commit:comments:4\"></div><div id=\"в7\" path-в=\"State:commit:comments:5\"></div><div id=\"в8\" path-в=\"State:commit:comments:6\"></div><div id=\"в9\" path-в=\"State:commit:comments:7\"></div><div id=\"в10\" path-в=\"State:commit:comments:8\"></div><div id=\"в11\" path-в=\"State:commit:comments:9\"></div><table><tbody><tr><td>456</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 0);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 0);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 0);\">del</button></td></tr><tr><td>123</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 1);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 1);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 1);\">del</button></td></tr><tr><td>3</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 2);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 2);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 2);\">del</button></td></tr><tr><td>5</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 3);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 3);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 3);\">del</button></td></tr><tr><td>4</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 4);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 4);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 4);\">del</button></td></tr><tr><td>9</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 5);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 5);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 5);\">del</button></td></tr><tr><td>6</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 6);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 6);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 6);\">del</button></td></tr><tr><td>2</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 7);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 7);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 7);\">del</button></td></tr><tr><td>7</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 8);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 8);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 8);\">del</button></td></tr><tr><td>8</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 9);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 9);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 9);\">del</button></td></tr></tbody></table><br><label>Add Item<br><input type=\"text\" size=\"50\" onchange=\"B.do ({from: {ev: "onchange", attrs: {"type": "text", "value": "", "size": 50}}}, "set", ["State","commit","newComment"], this.value);\" onkeydown=\"B.do ({from: {ev: "onkeydown", attrs: {"type": "text", "value": "", "size": 50}}}, "creating.keydown", ["*"], event.keyCode, value, ["State","commit","newComment"]);\"></label><br><button onclick=\"B.do ({from: {ev: "onclick", attrs: {}}}, "copy", "form", this.value);\">Copy list</button>",
"expectedHTML": "<h1>List Proto</h1><style>#topline .wide-cell{min-width:300px;}</style><h3>Items:</h3><table><div id=\"в12\" path-в=\"State:commit:comments:0\"><tr><td>456</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 0);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 0);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 0);\">del</button></td></tr></div><div id=\"в13\" path-в=\"State:commit:comments:1\"><tr><td>123</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 1);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 1);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 1);\">del</button></td></tr></div><div id=\"в14\" path-в=\"State:commit:comments:2\"><tr><td>3</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 2);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 2);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 2);\">del</button></td></tr></div><div id=\"в15\" path-в=\"State:commit:comments:3\"><tr><td>4</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 3);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 3);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 3);\">del</button></td></tr></div><div id=\"в16\" path-в=\"State:commit:comments:4\"><tr><td>9</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 4);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 4);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 4);\">del</button></td></tr></div><div id=\"в17\" path-в=\"State:commit:comments:5\"><tr><td>6</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 5);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 5);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 5);\">del</button></td></tr></div><div id=\"в18\" path-в=\"State:commit:comments:6\"><tr><td>2</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 6);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 6);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 6);\">del</button></td></tr></div><div id=\"в19\" path-в=\"State:commit:comments:7\"><tr><td>7</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 7);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 7);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 7);\">del</button></td></tr></div><div id=\"в20\" path-в=\"State:commit:comments:8\"><tr><td>8</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 8);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 8);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 8);\">del</button></td></tr></div></table><br><label>Add Item<br><input type=\"text\" size=\"50\" onchange=\"B.do ({from: {ev: "onchange", attrs: {"type": "text", "value": "", "size": 50}}}, "set", ["State","commit","newComment"], this.value);\" onkeydown=\"B.do ({from: {ev: "onkeydown", attrs: {"type": "text", "value": "", "size": 50}}}, "creating.keydown", ["*"], event.keyCode, value, ["State","commit","newComment"]);\"></label><br><button onclick=\"B.do ({from: {ev: "onclick", attrs: {}}}, "copy", "form", this.value);\">Copy list</button>",
"oldView": [
[
"h1",
"List Proto"
],
[
[
"style",
[
[
"#topline .wide-cell",
{
"min-width": "300px"
}
]
]
],
[
"h3",
"Items:"
],
[
"table",
[
[
"div",
{
"id": "в2",
"path-в": "State:commit:comments:0"
},
[
"LITERAL",
"<tr><td>456</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 0);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 0);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 0);\">del</button></td></tr>"
]
],
[
"div",
{
"id": "в3",
"path-в": "State:commit:comments:1"
},
[
"LITERAL",
"<tr><td>123</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 1);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 1);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 1);\">del</button></td></tr>"
]
],
[
"div",
{
"id": "в4",
"path-в": "State:commit:comments:2"
},
[
"LITERAL",
"<tr><td>3</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 2);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 2);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 2);\">del</button></td></tr>"
]
],
[
"div",
{
"id": "в5",
"path-в": "State:commit:comments:3"
},
[
"LITERAL",
"<tr><td>5</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 3);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 3);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 3);\">del</button></td></tr>"
]
],
[
"div",
{
"id": "в6",
"path-в": "State:commit:comments:4"
},
[
"LITERAL",
"<tr><td>4</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 4);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 4);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 4);\">del</button></td></tr>"
]
],
[
"div",
{
"id": "в7",
"path-в": "State:commit:comments:5"
},
[
"LITERAL",
"<tr><td>9</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 5);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 5);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 5);\">del</button></td></tr>"
]
],
[
"div",
{
"id": "в8",
"path-в": "State:commit:comments:6"
},
[
"LITERAL",
"<tr><td>6</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 6);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 6);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 6);\">del</button></td></tr>"
]
],
[
"div",
{
"id": "в9",
"path-в": "State:commit:comments:7"
},
[
"LITERAL",
"<tr><td>2</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 7);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 7);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 7);\">del</button></td></tr>"
]
],
[
"div",
{
"id": "в10",
"path-в": "State:commit:comments:8"
},
[
"LITERAL",
"<tr><td>7</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 8);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 8);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 8);\">del</button></td></tr>"
]
],
[
"div",
{
"id": "в11",
"path-в": "State:commit:comments:9"
},
[
"LITERAL",
"<tr><td>8</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 9);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 9);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 9);\">del</button></td></tr>"
]
]
]
],
[
"br"
],
[
"label",
[
"Add Item",
[
"br"
],
[
"input",
{
"type": "text",
"value": "",
"size": 50,
"onchange": "B.do ({from: {ev: \"onchange\", attrs: {\"type\": \"text\", \"value\": \"\", \"size\": 50}}}, \"set\", [\"State\",\"commit\",\"newComment\"], this.value);",
"onkeydown": "B.do ({from: {ev: \"onkeydown\", attrs: {\"type\": \"text\", \"value\": \"\", \"size\": 50}}}, \"creating.keydown\", [\"*\"], event.keyCode, value, [\"State\",\"commit\",\"newComment\"]);"
}
]
]
],
[
"br"
],
[
"button",
{
"onclick": "B.do ({from: {ev: \"onclick\", attrs: {}}}, \"copy\", \"form\", this.value);"
},
"Copy list"
]
]
],
"newView": [
[
"h1",
"List Proto"
],
[
[
"style",
[
[
"#topline .wide-cell",
{
"min-width": "300px"
}
]
]
],
[
"h3",
"Items:"
],
[
"table",
[
[
"div",
{
"id": "в12",
"path-в": "State:commit:comments:0"
},
[
"LITERAL",
"<tr><td>456</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 0);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 0);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 0);\">del</button></td></tr>"
]
],
[
"div",
{
"id": "в13",
"path-в": "State:commit:comments:1"
},
[
"LITERAL",
"<tr><td>123</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 1);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 1);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 1);\">del</button></td></tr>"
]
],
[
"div",
{
"id": "в14",
"path-в": "State:commit:comments:2"
},
[
"LITERAL",
"<tr><td>3</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 2);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 2);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 2);\">del</button></td></tr>"
]
],
[
"div",
{
"id": "в15",
"path-в": "State:commit:comments:3"
},
[
"LITERAL",
"<tr><td>4</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 3);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 3);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 3);\">del</button></td></tr>"
]
],
[
"div",
{
"id": "в16",
"path-в": "State:commit:comments:4"
},
[
"LITERAL",
"<tr><td>9</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 4);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 4);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 4);\">del</button></td></tr>"
]
],
[
"div",
{
"id": "в17",
"path-в": "State:commit:comments:5"
},
[
"LITERAL",
"<tr><td>6</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 5);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 5);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 5);\">del</button></td></tr>"
]
],
[
"div",
{
"id": "в18",
"path-в": "State:commit:comments:6"
},
[
"LITERAL",
"<tr><td>2</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 6);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 6);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 6);\">del</button></td></tr>"
]
],
[
"div",
{
"id": "в19",
"path-в": "State:commit:comments:7"
},
[
"LITERAL",
"<tr><td>7</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 7);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 7);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 7);\">del</button></td></tr>"
]
],
[
"div",
{
"id": "в20",
"path-в": "State:commit:comments:8"
},
[
"LITERAL",
"<tr><td>8</td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "up", 8);\">up</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "move-comment", "down", 8);\">down</button></td><td><button onmousedown=\"B.do ({from: {ev: "onmousedown", attrs: {}}}, "rem", ["State","commit","comments"], 8);\">del</button></td></tr>"
]
]
]
],
[
"br"
],
[
"label",
[
"Add Item",
[
"br"
],
[
"input",
{
"type": "text",
"value": "",
"size": 50,
"onchange": "B.do ({from: {ev: \"onchange\", attrs: {\"type\": \"text\", \"value\": \"\", \"size\": 50}}}, \"set\", [\"State\",\"commit\",\"newComment\"], this.value);",
"onkeydown": "B.do ({from: {ev: \"onkeydown\", attrs: {\"type\": \"text\", \"value\": \"\", \"size\": 50}}}, \"creating.keydown\", [\"*\"], event.keyCode, value, [\"State\",\"commit\",\"newComment\"]);"
}
]
]
],
[
"br"
],
[
"button",
{
"onclick": "B.do ({from: {ev: \"onclick\", attrs: {}}}, \"copy\", \"form\", this.value);"
},
"Copy list"
]
]
],
"diff": {
"0": [
"keep",
"<h1",
{
"el": {},
"old": [
0
],
"New": [
0
],
"active": false
}
],
"1": [
"keep",
"List Proto",
{
"el": {},
"old": [
0,
0
],
"New": [
0,
0
]
}
],
"2": [
"keep",
">"
],
"3": [
"keep",
"<style",
{
"el": {},
"old": [
1
],
"New": [
1
],
"active": false
}
],
"4": [
"keep",
"#topline .wide-cell{min-width:300px;}",
{
"el": {},
"old": [
1,
0
],
"New": [
1,
0
]
}
],
"5": [
"keep",
">"
],
"6": [
"keep",
"<h3",
{
"el": {},
"old": [
2
],
"New": [
2
],
"active": false
}
],
"7": [
"keep",
"Items:",
{
"el": {},
"old": [
2,
0
],
"New": [
2,
0
]
}
],
"8": [
"keep",
">"
],
"9": [
"keep",
"<table",
{
"el": {},
"old": [
3
],
"New": [
3
],
"active": false
}
],
"10": [
"keep",
"<tbody",
{
"old": [
3,
0
],
"New": [
3,
0
],
"active": false
}
],
"11": [
"rem",
"<div {\"id\":\"в2\",\"path-в\":\"State:commit:comments:0\"}"
],
"12": [
"add",
"<div {\"id\":\"в12\",\"path-в\":\"State:commit:comments:0\"}"
],
"13": [
"keep",
"<tr"
],
"14": [
"keep",
"<td"
],
"15": [
"keep",
"456"
],
"16": [
"keep",
">"
],
"17": [
"keep",
"<td"
],
"18": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"move-comment\\\", \\\"up\\\", 0);\"}"
],
"19": [
"keep",
"up"
],
"20": [
"keep",
">"
],
"21": [
"keep",
">"
],
"22": [
"keep",
"<td"
],
"23": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"move-comment\\\", \\\"down\\\", 0);\"}"
],
"24": [
"keep",
"down"
],
"25": [
"keep",
">"
],
"26": [
"keep",
">"
],
"27": [
"keep",
"<td"
],
"28": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"rem\\\", [\\\"State\\\",\\\"commit\\\",\\\"comments\\\"], 0);\"}"
],
"29": [
"keep",
"del"
],
"30": [
"keep",
">"
],
"31": [
"keep",
">"
],
"32": [
"keep",
">"
],
"33": [
"keep",
">"
],
"34": [
"rem",
"<div {\"id\":\"в3\",\"path-в\":\"State:commit:comments:1\"}"
],
"35": [
"add",
"<div {\"id\":\"в13\",\"path-в\":\"State:commit:comments:1\"}"
],
"36": [
"keep",
"<tr"
],
"37": [
"keep",
"<td"
],
"38": [
"keep",
"123"
],
"39": [
"keep",
">"
],
"40": [
"keep",
"<td"
],
"41": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"move-comment\\\", \\\"up\\\", 1);\"}"
],
"42": [
"keep",
"up"
],
"43": [
"keep",
">"
],
"44": [
"keep",
">"
],
"45": [
"keep",
"<td"
],
"46": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"move-comment\\\", \\\"down\\\", 1);\"}"
],
"47": [
"keep",
"down"
],
"48": [
"keep",
">"
],
"49": [
"keep",
">"
],
"50": [
"keep",
"<td"
],
"51": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"rem\\\", [\\\"State\\\",\\\"commit\\\",\\\"comments\\\"], 1);\"}"
],
"52": [
"keep",
"del"
],
"53": [
"keep",
">"
],
"54": [
"keep",
">"
],
"55": [
"keep",
">"
],
"56": [
"keep",
">"
],
"57": [
"rem",
"<div {\"id\":\"в4\",\"path-в\":\"State:commit:comments:2\"}"
],
"58": [
"add",
"<div {\"id\":\"в14\",\"path-в\":\"State:commit:comments:2\"}"
],
"59": [
"keep",
"<tr"
],
"60": [
"keep",
"<td"
],
"61": [
"keep",
"3"
],
"62": [
"keep",
">"
],
"63": [
"keep",
"<td"
],
"64": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"move-comment\\\", \\\"up\\\", 2);\"}"
],
"65": [
"keep",
"up"
],
"66": [
"keep",
">"
],
"67": [
"keep",
">"
],
"68": [
"keep",
"<td"
],
"69": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"move-comment\\\", \\\"down\\\", 2);\"}"
],
"70": [
"keep",
"down"
],
"71": [
"keep",
">"
],
"72": [
"keep",
">"
],
"73": [
"keep",
"<td"
],
"74": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"rem\\\", [\\\"State\\\",\\\"commit\\\",\\\"comments\\\"], 2);\"}"
],
"75": [
"keep",
"del"
],
"76": [
"keep",
">"
],
"77": [
"keep",
">"
],
"78": [
"keep",
">"
],
"79": [
"keep",
">"
],
"80": [
"rem",
"<div {\"id\":\"в5\",\"path-в\":\"State:commit:comments:3\"}"
],
"81": [
"add",
"<div {\"id\":\"в15\",\"path-в\":\"State:commit:comments:3\"}"
],
"82": [
"keep",
"<tr"
],
"83": [
"keep",
"<td"
],
"84": [
"rem",
"5"
],
"85": [
"add",
"4"
],
"86": [
"keep",
">"
],
"87": [
"keep",
"<td"
],
"88": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"move-comment\\\", \\\"up\\\", 3);\"}"
],
"89": [
"keep",
"up"
],
"90": [
"keep",
">"
],
"91": [
"keep",
">"
],
"92": [
"keep",
"<td"
],
"93": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"move-comment\\\", \\\"down\\\", 3);\"}"
],
"94": [
"keep",
"down"
],
"95": [
"keep",
">"
],
"96": [
"keep",
">"
],
"97": [
"keep",
"<td"
],
"98": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"rem\\\", [\\\"State\\\",\\\"commit\\\",\\\"comments\\\"], 3);\"}"
],
"99": [
"keep",
"del"
],
"100": [
"keep",
">"
],
"101": [
"keep",
">"
],
"102": [
"keep",
">"
],
"103": [
"keep",
">"
],
"104": [
"rem",
"<div {\"id\":\"в6\",\"path-в\":\"State:commit:comments:4\"}"
],
"105": [
"add",
"<div {\"id\":\"в16\",\"path-в\":\"State:commit:comments:4\"}"
],
"106": [
"keep",
"<tr"
],
"107": [
"keep",
"<td"
],
"108": [
"rem",
"4"
],
"109": [
"add",
"9"
],
"110": [
"keep",
">"
],
"111": [
"keep",
"<td"
],
"112": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"move-comment\\\", \\\"up\\\", 4);\"}"
],
"113": [
"keep",
"up"
],
"114": [
"keep",
">"
],
"115": [
"keep",
">"
],
"116": [
"keep",
"<td"
],
"117": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"move-comment\\\", \\\"down\\\", 4);\"}"
],
"118": [
"keep",
"down"
],
"119": [
"keep",
">"
],
"120": [
"keep",
">"
],
"121": [
"keep",
"<td"
],
"122": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"rem\\\", [\\\"State\\\",\\\"commit\\\",\\\"comments\\\"], 4);\"}"
],
"123": [
"keep",
"del"
],
"124": [
"keep",
">"
],
"125": [
"keep",
">"
],
"126": [
"keep",
">"
],
"127": [
"keep",
">"
],
"128": [
"rem",
"<div {\"id\":\"в7\",\"path-в\":\"State:commit:comments:5\"}"
],
"129": [
"add",
"<div {\"id\":\"в17\",\"path-в\":\"State:commit:comments:5\"}"
],
"130": [
"keep",
"<tr"
],
"131": [
"keep",
"<td"
],
"132": [
"rem",
"9"
],
"133": [
"add",
"6"
],
"134": [
"keep",
">"
],
"135": [
"keep",
"<td"
],
"136": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"move-comment\\\", \\\"up\\\", 5);\"}"
],
"137": [
"keep",
"up"
],
"138": [
"keep",
">"
],
"139": [
"keep",
">"
],
"140": [
"keep",
"<td"
],
"141": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"move-comment\\\", \\\"down\\\", 5);\"}"
],
"142": [
"keep",
"down"
],
"143": [
"keep",
">"
],
"144": [
"keep",
">"
],
"145": [
"keep",
"<td"
],
"146": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"rem\\\", [\\\"State\\\",\\\"commit\\\",\\\"comments\\\"], 5);\"}"
],
"147": [
"keep",
"del"
],
"148": [
"keep",
">"
],
"149": [
"keep",
">"
],
"150": [
"keep",
">"
],
"151": [
"keep",
">"
],
"152": [
"rem",
"<div {\"id\":\"в8\",\"path-в\":\"State:commit:comments:6\"}"
],
"153": [
"add",
"<div {\"id\":\"в18\",\"path-в\":\"State:commit:comments:6\"}"
],
"154": [
"keep",
"<tr"
],
"155": [
"keep",
"<td"
],
"156": [
"rem",
"6"
],
"157": [
"add",
"2"
],
"158": [
"keep",
">"
],
"159": [
"keep",
"<td"
],
"160": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"move-comment\\\", \\\"up\\\", 6);\"}"
],
"161": [
"keep",
"up"
],
"162": [
"keep",
">"
],
"163": [
"keep",
">"
],
"164": [
"keep",
"<td"
],
"165": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"move-comment\\\", \\\"down\\\", 6);\"}"
],
"166": [
"keep",
"down"
],
"167": [
"keep",
">"
],
"168": [
"keep",
">"
],
"169": [
"keep",
"<td"
],
"170": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"rem\\\", [\\\"State\\\",\\\"commit\\\",\\\"comments\\\"], 6);\"}"
],
"171": [
"keep",
"del"
],
"172": [
"keep",
">"
],
"173": [
"keep",
">"
],
"174": [
"keep",
">"
],
"175": [
"keep",
">"
],
"176": [
"rem",
"<div {\"id\":\"в9\",\"path-в\":\"State:commit:comments:7\"}"
],
"177": [
"add",
"<div {\"id\":\"в19\",\"path-в\":\"State:commit:comments:7\"}"
],
"178": [
"keep",
"<tr"
],
"179": [
"keep",
"<td"
],
"180": [
"rem",
"2"
],
"181": [
"add",
"7"
],
"182": [
"keep",
">"
],
"183": [
"keep",
"<td"
],
"184": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"move-comment\\\", \\\"up\\\", 7);\"}"
],
"185": [
"keep",
"up"
],
"186": [
"keep",
">"
],
"187": [
"keep",
">"
],
"188": [
"keep",
"<td"
],
"189": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"move-comment\\\", \\\"down\\\", 7);\"}"
],
"190": [
"keep",
"down"
],
"191": [
"keep",
">"
],
"192": [
"keep",
">"
],
"193": [
"keep",
"<td"
],
"194": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"rem\\\", [\\\"State\\\",\\\"commit\\\",\\\"comments\\\"], 7);\"}"
],
"195": [
"keep",
"del"
],
"196": [
"keep",
">"
],
"197": [
"keep",
">"
],
"198": [
"keep",
">"
],
"199": [
"keep",
">"
],
"200": [
"rem",
"<div {\"id\":\"в10\",\"path-в\":\"State:commit:comments:8\"}"
],
"201": [
"add",
"<div {\"id\":\"в20\",\"path-в\":\"State:commit:comments:8\"}"
],
"202": [
"keep",
"<tr"
],
"203": [
"keep",
"<td"
],
"204": [
"rem",
"7"
],
"205": [
"add",
"8"
],
"206": [
"keep",
">"
],
"207": [
"keep",
"<td"
],
"208": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"move-comment\\\", \\\"up\\\", 8);\"}"
],
"209": [
"keep",
"up"
],
"210": [
"keep",
">"
],
"211": [
"keep",
">"
],
"212": [
"keep",
"<td"
],
"213": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"move-comment\\\", \\\"down\\\", 8);\"}"
],
"214": [
"keep",
"down"
],
"215": [
"keep",
">"
],
"216": [
"keep",
">"
],
"217": [
"keep",
"<td"
],
"218": [
"keep",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"rem\\\", [\\\"State\\\",\\\"commit\\\",\\\"comments\\\"], 8);\"}"
],
"219": [
"keep",
"del"
],
"220": [
"keep",
">"
],
"221": [
"keep",
">"
],
"222": [
"keep",
">"
],
"223": [
"keep",
">"
],
"224": [
"rem",
"<div {\"id\":\"в11\",\"path-в\":\"State:commit:comments:9\"}"
],
"225": [
"rem",
"<tr"
],
"226": [
"rem",
"<td"
],
"227": [
"rem",
"8"
],
"228": [
"keep",
">"
],
"229": [
"rem",
"<td"
],
"230": [
"rem",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"move-comment\\\", \\\"up\\\", 9);\"}"
],
"231": [
"rem",
"up"
],
"232": [
"keep",
">"
],
"233": [
"rem",
">"
],
"234": [
"rem",
"<td"
],
"235": [
"rem",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"move-comment\\\", \\\"down\\\", 9);\"}"
],
"236": [
"rem",
"down"
],
"237": [
"rem",
">"
],
"238": [
"rem",
">"
],
"239": [
"rem",
"<td"
],
"240": [
"rem",
"<button {\"onmousedown\":\"B.do ({from: {ev: \\\"onmousedown\\\", attrs: {}}}, \\\"rem\\\", [\\\"State\\\",\\\"commit\\\",\\\"comments\\\"], 9);\"}"
],
"241": [
"rem",
"del"
],
"242": [
"rem",
">"
],
"243": [
"rem",
">"
],
"244": [
"rem",
">"
],
"245": [
"rem",
">"
],
"246": [
"rem",
">"
],
"247": [
"rem",
">"
],
"248": [
"keep",
"<br"
],
"249": [
"keep",
">"
],
"250": [
"keep",
"<label"
],
"251": [
"keep",
"Add Item"
],
"252": [
"keep",
"<br"
],
"253": [
"keep",
">"
],
"254": [
"keep",
"<input {\"type\":\"text\",\"size\":50,\"onchange\":\"B.do ({from: {ev: \\\"onchange\\\", attrs: {\\\"type\\\": \\\"text\\\", \\\"value\\\": \\\"\\\", \\\"size\\\": 50}}}, \\\"set\\\", [\\\"State\\\",\\\"commit\\\",\\\"newComment\\\"], this.value);\",\"onkeydown\":\"B.do ({from: {ev: \\\"onkeydown\\\", attrs: {\\\"type\\\": \\\"text\\\", \\\"value\\\": \\\"\\\", \\\"size\\\": 50}}}, \\\"creating.keydown\\\", [\\\"*\\\"], event.keyCode, value, [\\\"State\\\",\\\"commit\\\",\\\"newComment\\\"]);\"}"
],
"255": [
"keep",
">"
],
"256": [
"keep",
">"
],
"257": [
"keep",
"<br"
],
"258": [
"keep",
">"
],
"259": [
"keep",
"<button {\"onclick\":\"B.do ({from: {ev: \\\"onclick\\\", attrs: {}}}, \\\"copy\\\", \\\"form\\\", this.value);\"}"
],
"260": [
"keep",
"Copy list"
],
"261": [
"keep",
">"
]
}
}
Using the {tag: 'tr'}
as part of the arguments to B.view fixed this.
Sounds good - it was the markup then. Glad it's fixed!
Thanks to this issue I improved the error message obtained in this case, see https://github.com/fpereiro/gotoB/blob/b35a40dabc73ab7490ddd76ad0e43c7acf724969/gotoB.js#L415 . This improvement is already included in gotoB >= v1.2.4.
So, I was working on a gotob application, and I had tried to fire off a pair of change events for re-ordering events in a list, and found this in my console:
BOOM! YOU FOUND A BUG IN gotoB!