こんにちはこんにちは! エンジニア川端です。
すっかり肌寒くなった今日この頃、みなさまいかがお過ごしでしょうか?
Sleipnir for Mac β版リリースから 1 ヶ月半、私の向かいの席では、開発部隊が活発に意見交換しながら、日々開発が進んでいるようです。
私も毎日利用しながら、気づいた点を伝えたりしていますが、不具合報告だけでは盛り上がりに欠けますので、Sleipnir for Mac 用の「似非スピードダイアル」を作ってみました。

Sleipnir for Mac のアップデートで動かなくなる可能性があります。ご了承ください。
「似非スピードダイヤル」とは
新規タブを開いた時に、よく使う URL を登録しておいてブックマーク的に使うアレです。
私は、一日に何度も閉じたり開いたりするサイトはスピードダイヤルに登録し、それ以外は普通のブックマークに登録して使っています。
使い方
- 下記ファイルをダウンロードして、どこかに保存(同じ内容を末尾に掲載しておきますので、それのコピー & ペーストでも OK です)
https://blog.fenrir-inc.com/wp/wp-content/uploads/2011/10/pseudo-dial.html - Sleipnir for Mac の「環境設定」の「一般」で、ホームページに URL を入力する
デスクトップに 保存した場合は/Users/(ユーザ名)/Desktop/pseudo-dial.html
のように入力してください
- 新規タブを開くと、こんな画面です

- title 、url の部分をクリックすると、編集できます。残念ながらラクチン登録はできません。コピー & ペーストしてください。枠外をクリックすると編集完了です

- 枠内をダブルクリックでそのページを開きます
ひとまず使えるものはできましたが、
- ダブルクリックとシングルクリックの挙動が、感覚的に逆
- 長い URL は短く表示
- 見た目をかっこよく
- ちゃんとエラー処理する
などなど、要改善点はいくらでもでてきます。作り直した方がいらっしゃったらお知らせください ><
Sleipnir for Mac のぺージや、Facebook でも色々なメッセージをお待ちしております!
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>Pseudo Dial</title>
<style>
div#dialArea {
width: 678px;
margin-left: auto;
margin-right: auto;
padding: 0;
text-align: center;
}
div.container {
width: 180px;
height: 100px;
float: left;
text-align: center;
margin: 10px;
padding: 10px;
border: 3px solid #999;
border-radius: 9px;
box-shadow: 6px 6px 9px rgba(0,0,0,0.2);
}
footer {
clear: both;
text-align: center;
}
</style>
<script>
window.onload = function() {
var dialMax = 9;
var cookieName = 'pseudo-dial';
function $(id) {
return document.getElementById(id);
}
for ( var i = 0; i < dialMax; i++ ) {
var c = document.createElement('div');
c.setAttribute('class', 'container');
c.setAttribute('id', 'container0'+i);
var t = _cElmnt('title0' + i);
var u = _cElmnt('url0' + i);
c.appendChild(t);
c.appendChild(u);
$('dialArea').appendChild(c);
}
reloadDial();
function _cElmnt(id) {
var d = document.createElement('p');
d.setAttribute('id',id);
d.setAttribute('contenteditable', true);
d.onblur = function(){storeDial();};
return d;
}
function storeDial(){
var j = new Array();
for ( var i = 0; i < dialMax; i++ ) {
var titleTag = 'title0' + i;
var urlTag = 'url0' + i;
var title = $(titleTag).innerText;
var url = $(urlTag).innerText;
j.push({'title':title, 'url':url});
}
document.cookie = cookieName + '=' + escape(JSON.stringify(j)) + '; expires=Tue, 31-Dec-2030 23:59:59;';
reloadDial();
};
function reloadDial() {
var j = new Array();
if ( document.cookie ) {
var c = document.cookie;
if (c.indexOf(';') > 0 )
c = c.substr(cookieName.length + 1, c.indexOf(';') - (cookieName.length + 1) );
else
c = c.substr(cookieName.length + 1);
j = JSON.parse( unescape(c) );
}
for ( var i = 0; i < dialMax; i++ ) {
var titleTag = 'title0' + i;
var urlTag = 'url0' + i;
var title = j[i] ? j[i].title : titleTag;
var url = j[i] ? j[i].url : urlTag;
$(titleTag).innerText = title;
$(urlTag).innerText = url;
if ( url.match(/^https?:\/\//) ) {
$('container0'+i).setAttribute('ondblclick','window.location.href="'+url+'"');
$(titleTag).style.fontWeight = 'bold';
$('container0'+i).style.borderColor = '#666';
}
else {
$('container0'+i).setAttribute('ondblclick',null);
$(titleTag).style.fontWeight = 'normal';
$('container0'+i).style.borderColor = '#999';
}
}
};
};
</script>
</head>
<body>
<div id="dialArea">
</div>
<footer>
タイトル、URL をクリックで編集。枠内をダブルクリックで移動
</footer>
</body>
</html>









