Greasemonkeyを使ってXPath指定でHTMLを差し替える

Firefox とかで、ちょっとした Greasemoney User Script を使ってページを書き換えたい時に毎回ググってるので、探さなくても良いようにここにメモ。

置換 function

function setHTML(xpath, html)  {
  var e = document.evaluate(xpath, document, null,
                     XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
  if(!e.snapshotLength) {
    console.log('none');
  } else {
    console.log('replace: ' + xpath + ' <= ' + html);
    var item = e.snapshotItem(0);
    item.innerHTML = html;
  }
}

あとは setHTML(xpath, html) を羅列するだけ。

置換したい場所の XPath の取得

Firebug で「要素調査」を行い、置き換えたい HTML タグをポイントして、右ボタンのメニューから「XPathをコピー」を選択して取得する。
id とか決め手が無くても、こんな感じにとにかく取得できるので便利。

ex1) /html/body/div[2]/div/div[2]/div/div/div/p[2] ※決め手がなくてもなんとか参照
ex2) //*[@id="username"] ※idがあれば一発で参照

コメントを残す

メールアドレスが公開されることはありません。