target = "_blank" 消し script

あれでやると、好みの動作*1にならないので、こんなふうにしてます。

browser.link.open_newwindow = 3
browser.link.open_newwindow.restriction = 2
// ==UserScript==
// @name           target breaker
// @namespace      http://blog.f99aq8ove.net/
// @description    remove target attr.
// @include        *
// ==/UserScript==

(function() {
  for each (var node in $X("//a[@target='_blank']"))
    node.target = "";

  function $X(exp, context)
  {
    if (!context)
      context = document;

    var res = context.evaluate(
      exp,
      context,
      context.createNSResolver(context),
      XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
      null);

    var len, nodes = [];
    for (var i = 0, len = res.snapshotLength; i < len; ++i)
      nodes.push(res.snapshotItem(i));

    return nodes;
  }
})();

自転車置場のなんとやら?

*1:JavaScript で開いたものは新規タブへ、target = "_blank" 等は現在のタブへ