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

Main navigation

  • Home
  • YBR125メモ
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にあげてみました

月別アーカイブ

  • 7月 2025 (1)
  • 6月 2025 (54)
  • 12月 2024 (1)
  • 11月 2023 (3)
  • 10月 2023 (1)
  • 12月 2022 (1)
  • 4月 2022 (1)
  • 12月 2021 (1)
  • 2月 2021 (1)
  • 11月 2020 (1)
  • 7月 2020 (1)
  • 12月 2019 (1)
  • 7月 2019 (2)
  • 5月 2019 (3)
  • 3月 2019 (1)
  • 2月 2019 (1)
  • 12月 2018 (1)
  • 12月 2017 (1)
  • 1月 2017 (1)
  • 5月 2016 (1)
  • 2月 2016 (1)
  • 2月 2015 (2)
  • 11月 2014 (1)
  • 7月 2014 (1)
  • 6月 2014 (1)
  • 5月 2014 (1)
  • 2月 2014 (1)
  • 12月 2013 (1)
  • 11月 2013 (1)
  • 10月 2013 (1)
  • 6月 2013 (1)
  • 5月 2013 (1)
  • 3月 2013 (2)
  • 2月 2013 (1)
  • 1月 2013 (2)
  • 12月 2012 (1)
  • 11月 2012 (1)
  • 10月 2012 (4)
  • 9月 2012 (1)
  • 8月 2012 (2)
  • 6月 2012 (2)
  • 5月 2012 (1)
  • 3月 2012 (5)
  • 2月 2012 (1)
  • 1月 2012 (3)
  • 12月 2011 (1)
  • 10月 2011 (1)
  • 7月 2011 (4)
  • 6月 2011 (3)
  • 5月 2011 (2)
  • 4月 2011 (7)
  • 3月 2011 (4)
  • 2月 2011 (1)
  • 1月 2011 (2)
  • 12月 2010 (2)
  • 11月 2010 (2)
  • 10月 2010 (5)
  • 9月 2010 (5)
  • 8月 2010 (1)
  • 7月 2010 (6)
  • 6月 2010 (6)
  • 5月 2010 (4)
  • 4月 2010 (6)
  • 3月 2010 (14)
  • 2月 2010 (10)
  • 1月 2010 (6)
  • 12月 2009 (11)
  • 11月 2009 (10)
  • 10月 2009 (13)
  • 9月 2009 (23)
  • 8月 2009 (12)
  • 7月 2009 (23)
  • 6月 2009 (22)
  • 5月 2009 (40)
  • 4月 2009 (6)
  • 3月 2009 (6)
  • 2月 2009 (6)
  • 1月 2009 (12)
  • 12月 2008 (15)
  • 11月 2008 (13)
  • 10月 2008 (10)
  • 9月 2008 (12)
  • 8月 2008 (19)
  • 7月 2008 (15)
  • 6月 2008 (45)
  • 5月 2008 (29)
RSS feed