メインコンテンツに移動
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

最近のエントリー

  • パワーフィルターの交換
  • リヤタイヤ交換
  • ジェッティングメモ
  • シフトペダルの交換
  • フロントブレーキパッドの交換
  • バイクガレージを買った
  • バックミラーの交換
  • 角目化
  • バイクカバーを新調
  • クラッチレバーブーツの硬化対策

ランダム

  • あけましておめでとうございます (2016/02/07)
  • WebデザイナーはOperaを使え (2009/06/05)
  • ブログ通信簿2 (2008/08/14)
  • 看板娘 (2009/06/09)
  • マミレル (2012/05/23)

月別アーカイブ

  • 7月 2026 (5)
  • 5月 2026 (3)
  • 4月 2026 (4)
  • 3月 2026 (4)
  • 2月 2026 (2)
  • 1月 2026 (5)
  • 12月 2025 (6)
  • 11月 2025 (5)
  • 10月 2025 (6)
  • 9月 2025 (12)
  • 8月 2025 (4)
  • 7月 2025 (3)

ページ送り

  • 1
  • 次ページ
RSS feed