<前の日記(2010年04月03日) 次の日記(2010年04月09日)> 最新 編集

高木浩光@自宅の日記

目次 はじめに 連絡先:blog@takagi-hiromitsu.jp
訪問者数 本日: 1008   昨日: 2784

2010年04月05日

日経新聞電子版の望みを叶えるGreasemonkeyスクリプト

ということで、日経新聞社が「リンクポリシー」なるもの*1において望んでいることを、利用者側で実現してみせるGreasemonkeyスクリプトを書いてみた。

// ==UserScript==
// @name           NIKKEI Web 0.0
// @namespace      http://takagi-hiromitsu.jp/
// @description    日経新聞電子版閲覧時の訴訟リスクを回避する
// @include        http://*.nikkei.com/*
// @include        http://*.nikkei.co.jp/*
// @exclude        http://it.nikkei.co.jp/* 
// ==/UserScript==
if (location.search.indexOf("nikkei") >= 0) return;
if (location.pathname.indexOf("nikkei") >= 0) return;

if (parent.location.pathname != "/") {
  location.href = location.protocol + "//" + location.host + "/";
} else {
  if (parent == this) {
    var fs = document.createElement("frameset");
    fs.cols = "100%";
    var f = document.createElement("frame");
    f.src = "/?";
    fs.appendChild(f);
    document.body = fs;
  } else {
    var allLinks = document.evaluate('//a[@href]', document, null,
      XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
    for (i = 0; i < allLinks.snapshotLength; i++) {
      var link = allLinks.snapshotItem(i);
      if (link.hostname != parent.location.hostname) {
        link.target = "_top";
      }
    }
  }
}

何者かが個別記事に言及したリンクを、万が一踏んでしまった場合でも、ちゃんとトップページへリダイレクトしてくれる。

加えて、日経新聞電子版の中でリンクを辿って個別の記事を閲覧しても、ブラウザのアドレスバーはトップページのままになる。下の図のように、社説を読んでいるときもアドレスは http://www.nikkei.com/ だ。

画面キャプチャ

そのため、万が一誤って社説とかをブックマークしそうになっても、下の図のように、トップページのブックマークになる。

画面キャプチャ

このスクリプトの完成度はいまひとつ不完全だが、コンセプトとしてはこんな感じ。個別ページへのリンクを禁止することがどのようなことなのかを体感できる。

サーバ側でならもっと完全に実現できるので、日経新聞電子版はこれを実装してはどうか。

*1 そもそも、言及される側が「ポリシー」とか言うこと自体からして意味不明。

本日のTrackBacks(全5件) [TrackBack URL: http://takagi-hiromitsu.jp/diary/tb.rb/20100405]
検索

<前の日記(2010年04月03日) 次の日記(2010年04月09日)> 最新 編集

最近のタイトル

2016年08月23日

2016年07月23日

2016年07月16日

2016年07月02日

2016年06月12日

2016年06月03日

2016年04月23日

2016年04月06日

2016年03月27日

2016年03月14日

2016年03月06日

2016年02月24日

2016年02月20日

2016年02月11日

2016年02月05日

2016年01月31日

2015年12月12日

2015年12月06日

2015年11月23日

2015年11月21日

2015年11月07日

2015年10月20日

2015年07月02日

2015年06月14日

2015年03月15日

2015年03月10日

2015年03月08日

2015年01月05日

2014年12月27日

2014年11月12日

2014年09月07日

2014年07月18日

2014年04月23日

2014年04月22日

2000|01|
2003|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|05|06|07|08|09|10|11|12|
2012|02|03|04|05|06|07|08|09|
2013|01|02|03|04|05|06|07|
2014|01|04|07|09|11|12|
2015|01|03|06|07|10|11|12|
2016|01|02|03|04|06|07|08|
<前の日記(2010年04月03日) 次の日記(2010年04月09日)> 最新 編集