]> var targetNode = this; window.addEventListener ('load', function () { if (!targetNode.wrapWbrAdded ()) { targetNode.setAttributeNS (&NS_WRAP;, 'wrap:wbrAdded', '1'); var resolver = document.createNSResolver (targetNode); var nodes = document.evaluate ( 'descendant::*/child::text () | child::text ()', targetNode, resolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null ); var pattern_before = targetNode.WrapPatternBefore; var pattern_after = targetNode.WrapPatternAfter; var range = document.createRange (); var wbr = document.createElementNS ('http://www.w3.org/1999/xhtml', "wbr"); var lastIndex; for (var i = 0; i < nodes.snapshotLength; i++) { var node = nodes.snapshotItem (i); range.selectNode (node); while (node) { var rangeString = range.toString (); lastIndex = [rangeString.search (pattern_before)]; lastIndex[1] = RegExp.$1.length; lastIndex[2] = rangeString.search (pattern_after); lastIndex[3] = RegExp.$1.length; var j; if (lastIndex[0] != -1) { if (lastIndex[2] != -1) { j = lastIndex[2] > lastIndex[0] ? 0 : 1; } else { j = 0; } } else { if (lastIndex[2] != -1) { j = 1; } else { break; } } if (j == 0) { range.setStart (node, lastIndex[0]); range.insertNode (wbr.cloneNode (false)); node = node.nextSibling.nextSibling.splitText (lastIndex[1]); range.selectNode (node); } else { range.setStart (node, lastIndex[2] + lastIndex[3]); range.insertNode (wbr.cloneNode (false)); node = node.nextSibling.nextSibling; range.selectNode (node); } } } range.detach (); } }, false); /([!"')\*\+,\-.\/:;=>?\]\^_`|}]{1,10})/; 0) { return true; } var parents = new Array (this.parentNode); while (parents.length > 0) { var node = parents.shift (); if (node.nodeType == node.ELEMENT_NODE && node.getAttributeNS (NS_WRAP, 'wbrAdded')) { return true; } else if (node.parentNode) { parents.push (node.parentNode); } } return false; ]]> /([#(?\[]{1,10}|%..)/; ]{1,10})/;]]> /([A-Z]+)/; /([._@>-])/; /([A-Z][A-Z]+(?=[A-Z][a-z]|[^A-Za-z]|$)|[A-Z][a-z]+)/; /([._:->]+)(?!$)/;