javascript: (function(){
var addzero = function(n){
if (n < 10) {
return "0" + n;
}
else {
return n + "";
}
};
var datestr = function(d){
return d.getUTCFullYear() + addzero(d.getUTCMonth() + 1) + addzero(d.getUTCDate()) + "T" + addzero(d.getUTCHours()) + addzero(d.getUTCMinutes()) + "00Z";
};
var i;
var norikae_list = document.getElementById("norikae_list");
var datecontent = norikae_list.getElementsByTagName("h2")[0];
var text = datecontent.firstChild.nodeValue;
var ems = datecontent.getElementsByTagName("em");
var year = ems[0].innerHTML;
var month = ems[1].innerHTML - 1;
var day = ems[2].innerHTML;
var maincontent;
for (i = 1; i < 6; i++) {
maincontent = document.getElementById("route" + i);
if (maincontent.getAttribute("style") === "") {
break;
}
}
var h2 = maincontent.getElementsByTagName("h2")[0];
var h2text = h2.firstChild.nodeValue;
var timecontent = h2text.match(/\d\d/g);
var shour = timecontent[0];
var smin = timecontent[1];
var ehour = timecontent[2];
var emin = timecontent[3];
var table = maincontent.getElementsByTagName("table")[1];
var times = table.getElementsByClassName("time");
var stations = table.getElementsByClassName("station_name");
var trains = table.getElementsByClassName("train");
var details = "";
for (i = 0; i < trains.length; i++) {
details += times[i * 2].textContent;
details += " ";
details += stations[i].innerHTML;
details += "<br/>";
details += times[i * 2 + 1].textContent;
details += " ";
details += trains[i].innerHTML;
details += "<br/>";
};
details += times[i * 2].textContent;
details += stations[i].innerHTML;
var start = new Date(year, month, day, shour, smin, 0);
var end = new Date(year, month, day, ehour, emin, 0);
var dates = datestr(start) + "/" + datestr(end);
var url = "https://www.google.com/calendar/event?action=TEMPLATE&text=" +
encodeURIComponent(text) +
"&dates=" +
dates +
"&details=" +
encodeURIComponent(details);
window.open(url, "_blank");
})();
FirefoxとChromeでは動くことを確認しました。