ページの作成:「<html> <head> <style> #chart_div { margin: 0; height: 100%; min-height: 38em; overflow: hidden; } #chart_div .tab…」 |
Add table-layout:fixed for mobile fix |
||
| (4人の利用者による、間の98版が非表示) | |||
| 1行目: | 1行目: | ||
<html> | <includeonly> | ||
<html lang="ja"> | |||
<head> | |||
<style> | <style> | ||
#chart_div table { | |||
table-layout: fixed; | |||
width: 100%; | |||
border-collapse: collapse; | |||
border-spacing: 0; | |||
margin: 1rem 0; | |||
} | |||
#chart_div .time { | |||
width: 3rem; | |||
} | |||
#chart_div .pageview { | |||
width: 2.5rem; | |||
} | |||
text-align: center; | #chart_div td.time { | ||
text-align: right; | |||
font-size: 0.8rem; | |||
} | |||
#chart_div td.pageview { | |||
text-align: center; | |||
font-size: 0.8rem; | |||
cursor: | } | ||
#chart_div td.page { | |||
text-overflow: ellipsis; | |||
overflow: hidden; | |||
white-space: nowrap; | |||
} | |||
#chart_div th, | |||
#chart_div td { | |||
border: 1px solid #ddd; | |||
} | |||
#chart_div th { | |||
text-align: center; | |||
} | |||
#chart_div th.selectable { | |||
cursor: pointer; | |||
} | |||
#chart_div th.selected { | |||
cursor: auto; | |||
background-repeat: no-repeat; | |||
background-position: center right 0.2rem; | |||
} | |||
.page { | |||
overflow: hidden; | |||
text-overflow: ellipsis; | |||
white-space: nowrap; | |||
} | |||
</style> | </style> | ||
<!--Load the AJAX API--> | <!--Load the AJAX API--> | ||
<script | <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> | ||
<script type="text/javascript"> | <script type="text/javascript"> | ||
var period = "daily", | |||
orderBy = "pageview"; | |||
prepareChart(); | |||
function prepareChart() { | |||
var sheetName = | |||
period + | |||
" " + | |||
(orderBy === "time" ? "longest time spent" : "most viewed"); | |||
var url = | |||
"https://docs.google.com/spreadsheets/d/1QrIPnTnAaJSoKRy-IcWCoDylC3K8pdbfINNVFs7XEnA/gviz/tq?sheet=" + | |||
sheetName + | |||
"&headers=15"; | |||
google.charts.load("current", {packages: ["corechart"]}); | |||
google.charts.setOnLoadCallback(drawChart); | |||
function drawChart() { | |||
var query = new google.visualization.Query(url); | |||
query.send(handleQueryResponse); | |||
} | } | ||
function handleQueryResponse(response) { | |||
var data = response.getDataTable(); | |||
var rows = data.getNumberOfRows(); | |||
var html = [ | |||
`<table> | |||
<thead bgcolor = #507f50> | |||
<tr> | |||
<th id="header-pageview" class="pageview selectable ${orderBy === "pageview" ? "selected" : ""}">PV</th> | |||
<th>ページ</th> | |||
</tr> | |||
</thead> | |||
<tbody> | |||
`]; | |||
for (var i = 0; i < rows; i++) { | |||
try { | |||
var title = data.getValue(i, 1).replace(" - 宇宙wiki", ""); | |||
var pageview = data.getValue(i, 3); | |||
var url = "/w/" + encodeTitle(title); | |||
var anchor = `<a href="${url}" target="_parent" title="${title}">${title}</a>`; | |||
html.push(` | |||
<tr> | |||
<td class="pageview">${pageview}</td> | |||
<td class="page" >${anchor}</td> | |||
</tr> | |||
`); | |||
} catch (e) { | |||
console.log([i, e]); | |||
} | |||
} | |||
html.push("</tbody></table>"); | |||
document.querySelector("#chart_div").innerHTML = html.join(''); | |||
document | |||
.getElementById("hourly") | |||
.addEventListener("click", function () { | |||
if (period === "hourly") return; | |||
period = "hourly"; | |||
prepareChart(); | |||
}); | |||
document | |||
.getElementById("daily") | |||
.addEventListener("click", function () { | |||
if (period === "daily") return; | |||
period = "daily"; | |||
prepareChart(); | |||
}); | |||
document | |||
.getElementById("header-pageview") | |||
.addEventListener("click", function () { | |||
if (orderBy === "pageview") return; | |||
orderBy = "pageview"; | |||
prepareChart(); | |||
}); | |||
} | |||
} | } | ||
function encodeTitle(title) { | |||
return title | |||
.split("/") | |||
.map(function (path) { | |||
return encodeURIComponent(path); | |||
}) | |||
.join("/"); | |||
} | |||
</script> | </script> | ||
</head> | |||
<body> | |||
<div id="chart_div"></div> | |||
</body> | |||
</html> | </html> | ||
</includeonly> | |||
<noinclude> | |||
{{DEFAULTSORT:}} | |||
</noinclude> | |||
2026年5月28日 (木) 15:08時点における最新版