07/06/04 23:23:05 AbalSG7v0
>>421
// URL_Breaker2.uc.js: for Firefox 2.0.* - 3.0,* by otokiti 07/02/19
window.addEventListener('DOMContentLoaded', function(evt) {
var tabs = gBrowser.tabContainer;
for(var i=0; i<tabs.childNodes.length; i++){
var tab = tabs.childNodes[i];
var doc = gBrowser.getBrowserForTab(tab).contentDocument;
var html = doc.getElementsByTagName("html")[0];
if(!html.hasAttribute("__url_breaker_done")){
html.setAttribute("__url_breaker_done", "1");
if (doc.contentType == 'text/html') {
var s1,s2,pNode,cNode,nNode,j;
const threshold = new RegExp(/[\x21-\xff]{50}/); const wrapChr = new RegExp(/([\/\?\)\]}\-・」!・、,.:=>・。;_])|([&%#$~'"・「\({\[])/g);
const dmyChr = new RegExp(/<dummyWBR><dummyWBR>/g); const avoidElm = new RegExp(/TITLE|STYLE|FORM|SCRIPT|INPUT|TEXTAREA|PRE|OPTION|XMP/);
try{ var walker = doc.createTreeWalker(doc.body, NodeFilter.SHOW_TEXT, null, true);
while (cNode = walker.nextNode()){
s1 = cNode.nodeValue; pNode = cNode.parentNode;
if (pNode.nodeName.match(avoidElm) || !s1.match(threshold))
continue;
s1 = s1.replace(wrapChr, '$1<dummyWBR>$2').replace(dmyChr, '<dummyWBR>');
s2 = s1.split('<dummyWBR>');
cNode.nodeValue = s2.pop();
for (j=0; j<s2.length; j++){
nNode = doc.createTextNode(s2[j]); pNode.insertBefore(nNode, cNode);
nNode = doc.createElement('WBR'); pNode.insertBefore(nNode, cNode);
} } }catch(e){}
} } } }, true);