メインコンテンツに移動
mattz.xii.jp

Main navigation

  • Home
User account menu
  • ログイン

パンくず

  1. ホーム

3つ以上連続するbrを2個にまとめるuser.js

By mattz, 2009/10/21

栗の皮むきは難しい @ ArtSaltのサイドストーリーにコメントしたら、「<br>の連打をuser CSSで無効にする」関連の返しがあり、しばらく考えてみたがuserCSSでの解法は思いつかなかったので、user.jsで強引に解決。


// ==UserScript==
// ==/UserScript==
(function(){
  window.addEventListener('load',function(){
    var re = /<br\s*\/?>[\s\n]*<br\s*\/?>[\s\n]*<br\s*\/?>/i;
    var all = document.body.innerHTML;
    while(re.test(all)){
      all = all.replace(re, "<br /><br />");
    }
    document.body.innerHTML = all;
  },false
);})();

してみたけど、このやり方だと元々あったイベントが全部死んじゃうんだな。強引過ぎだ。もうちょっと考えてみる。

追記

考えてみた。さっきのはチャイで。

// ==UserScript==
// ==/UserScript==
(function(){
  window.addEventListener('DOMContentLoaded',function(){
    var x = document.evaluate('//', document, null, 7, null);
    var l = x.snapshotLength;
    for(i = 0;i  l;i++){
      if('BR' == x.snapshotItem(i).tagName){
        if('BR' == x.snapshotItem(i+1).tagName){
          if('BR' == x.snapshotItem(i+2).tagName){
            x.snapshotItem(i).setAttribute('style','display:none;');
          }
        }
      }
    }
  },false
);})();

これでどうだろう。これはこれで強引じゃねーか?ほっといてくれ。

また追記

ちょくちょく某所からアクセスが来るので、改訂版。

// ==UserScript==
// ==/UserScript==
(function(){
  var getNext = function(node) {
    var n = node.nextSibling;
    if (! n) return false;
    if (n.nodeType == 3 && n.nodeValue.match(/^\s*$/)) {
      n = node.nextSibling.nextSibling;
    }
    return n;
  }
  window.addEventListener('DOMContentLoaded',function(){
    var brs = document.querySelectorAll('br');
    var last = brs.length - 2;
    var n1, n2;
    for(i = 0; i < last; i++){
      n1 = getNext(brs[i]);
      if (! n1) {break;}
      n2 = getNext(n1);
      if (! n2) {break;}
      if('BR' == n1.nodeName && 'BR' == n2.nodeName) {
        brs[i].style.display = 'none';
      }
    }
  },false
);})();

タグ

  • UserJS
  • JavaScript
前のエントリー次のエントリー

最近のエントリー

  • 2025シーズン セ・パ12球団の総移動距離
  • 2023年度 パシフィック・リーグ主催試合ヒーローインタビューランキング
  • 2024シーズン セ・パ12球団の総移動距離
  • 当サイトのDrupalが10になりました
  • E-Vinoを買ってみました
  • 2023シーズン セ・パ12球団の総移動距離
  • 俺は野球殿堂博物館を甘く見ていた
  • 2022シーズン セ・パ12球団の総移動距離
  • Drupalを9にあげてみました
  • 2021シーズン セ・パ12球団の総移動距離
RSS feed