diff --git a/4chan_x.user.js b/4chan_x.user.js
index 5b3a240ee..a18356ebc 100644
--- a/4chan_x.user.js
+++ b/4chan_x.user.js
@@ -2218,35 +2218,36 @@
};
threading = {
- init: function() {
- return threading.thread($('body > form').firstChild);
- },
op: function(node) {
- var op;
+ var nodes, op;
+ nodes = [];
+ while (node.nodeName !== 'BLOCKQUOTE') {
+ nodes.push(node);
+ node = node.nextSibling;
+ }
+ nodes.push(node);
+ node = node.nextSibling;
op = $.el('div', {
className: 'op'
});
- $.before(node, op);
- while (node.nodeName !== 'BLOCKQUOTE') {
- $.add(op, node);
- node = op.nextSibling;
- }
- $.add(op, node);
+ $.add(op, nodes);
op.id = $('input', op).name;
- return op;
+ return $.before(node, op);
},
thread: function(node) {
- var div;
+ var div, nodes;
node = threading.op(node);
if (g.REPLY) return;
+ nodes = [];
+ while (node.nodeName !== 'HR') {
+ nodes.push(node);
+ node = node.nextElementSibling;
+ }
div = $.el('div', {
className: 'thread'
});
+ $.add(div, nodes);
$.before(node, div);
- while (node.nodeName !== 'HR') {
- $.add(div, node);
- node = div.nextSibling;
- }
node = node.nextElementSibling;
if (!(node.align || node.nodeName === 'CENTER')) {
return threading.thread(node);
@@ -3574,7 +3575,8 @@
if (!$.id('navtopr')) return;
$.addClass(d.body, "chanx_" + (VERSION.match(/\.(\d+)/)[1]));
$.addClass(d.body, engine);
- threading.init();
+ form = $('form[name=delform]');
+ threading.thread(form.firstElementChild);
Favicon.init();
if (conf['Quick Reply']) qr.init();
if (conf['Image Expansion']) imgExpand.init();
@@ -3592,7 +3594,6 @@
if (conf['Comment Expansion']) expandComment.init();
if (conf['Index Navigation']) nav.init();
}
- form = $('body > form');
nodes = $$('.op, a + table', form);
Main.node(nodes, true);
if (MutationObserver = window.WebKitMutationObserver || window.MozMutationObserver || window.OMutationObserver || window.MutationObserver) {
diff --git a/script.coffee b/script.coffee
index f81e12111..ab52e16b6 100644
--- a/script.coffee
+++ b/script.coffee
@@ -1748,35 +1748,35 @@ options =
@nextElementSibling.innerHTML = "
"
threading =
- init: ->
- threading.thread $('body > form').firstChild
-
op: (node) ->
+ nodes = []
+ until node.nodeName is 'BLOCKQUOTE'
+ nodes.push node
+ node = node.nextSibling
+ nodes.push node # Add the blockquote.
+ node = node.nextSibling
op = $.el 'div',
className: 'op'
- $.before node, op
- while node.nodeName isnt 'BLOCKQUOTE'
- $.add op, node
- node = op.nextSibling
- $.add op, node #add the blockquote
+ $.add op, nodes
op.id = $('input', op).name
- op
+ $.before node, op
thread: (node) ->
node = threading.op node
return if g.REPLY
+ nodes = []
+ until node.nodeName is 'HR'
+ nodes.push node
+ node = node.nextElementSibling # Skip text nodes.
div = $.el 'div',
className: 'thread'
+ $.add div, nodes
$.before node, div
- while node.nodeName isnt 'HR'
- $.add div, node
- node = div.nextSibling
-
- node = node.nextElementSibling #skip text node
- #{N,}SFW
+ node = node.nextElementSibling
+ # {N,}SFW
unless node.align or node.nodeName is 'CENTER'
threading.thread node
@@ -2853,7 +2853,8 @@ Main =
return
$.addClass d.body, "chanx_#{VERSION.match(/\.(\d+)/)[1]}"
$.addClass d.body, engine
- threading.init()
+ form = $ 'form[name=delform]'
+ threading.thread form.firstElementChild
Favicon.init()
#major features
@@ -2899,7 +2900,6 @@ Main =
nav.init()
- form = $ 'body > form'
nodes = $$ '.op, a + table', form
Main.node nodes, true