Changeset 21065 for websites

Show
Ignore:
Timestamp:
10/10/08 06:45:12 (3 months ago)
Author:
NeoCat
Message:

*iPhone用にアプリモード対応, cache-manifestを追加
*favicon/iPhone用アイコン追加

Location:
websites/twicli
Files:
3 added
1 modified

Legend:

Unmodified
Added
Removed
  • websites/twicli/twicli.html

    r20435 r21065  
    11<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> 
    2 <html> 
     2<html manifest="cache-manifest"> 
    33<head> 
    44<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     5<meta name="apple-mobile-web-app-capable" content="yes"> 
    56<meta name="viewport" content="width=280"> 
     7<link rel="apple-touch-icon" href="icon.png"> 
     8<link rel="shortcut icon" href="favicon.ico"> 
    69<title>twicli</title> 
    710<style type="text/css"><!-- 
    8 body { background-image: url(block_bg.png); background-attachment: fixed; background-color: transparent; margin: 1px; min-height: 500px; } 
     11body { background-image: url(block_bg.png); background-attachment: fixed; margin: 1px; min-height: 500px; } 
    912img { border: 0 none; } 
    1013hr { margin: 0; padding: 0; } 
     
    3033.fromme { background-color: #cfc; } 
    3134.tome { background-color: #ccf; } 
    32 .button { color: #f29; border: 1px solid #ddd; text-decoration: none; font-size: medium; } 
     35.button { color: #f29; border: 1px solid #ddd; text-decoration: none; font-size: medium; -webkit-text-size-adjust:120%; } 
    3336.green { color: #195; } 
    3437.popup { padding: 0 4px; color: #888; } 
     
    4649--></style> 
    4750<script type="text/javascript"> 
     51var iphone = navigator.userAgent.indexOf('iPhone OS') >= 0; 
    4852function $(id) { return document.getElementById(id); } 
    4953// クロスドメインJavaScript呼び出し 
     
    168172                return res; 
    169173        }; 
     174} 
     175// iPhone / iPod touchではリンクをフレームに開く 
     176function clickLink(ele) { 
     177        if (iphone) { 
     178                switchTo("misc"); 
     179                var height = Math.max(document.body.scrollHeight, $("tw").offsetHeight+$("control").offsetHeight) - 54; 
     180                $("tw2c").innerHTML = '<iframe style="display:block; border: 0;" src="' + ele.href + '" width="100%" height="' + height + '"></iframe>'; 
     181        } 
     182        return !iphone; 
    170183} 
    171184// user-defined CSS 
     
    206219<!--ポップアップメニュー--> 
    207220<div id="popup" onClick="popup_hide()"> 
    208 <a id="popup_link_user" href="" target="twitter">Twitter / User</a> 
    209 <a id="popup_link_status" href="" target="twitter">Twitter / Status</a> 
     221<a id="popup_link_user" href="" target="twitter" onClick="return clickLink(this)">Twitter / User</a> 
     222<a id="popup_link_status" href="" target="twitter" onClick="return clickLink(this)">Twitter / Status</a> 
    210223</div> 
    211224<!--ポップアップメニュー非表示用--> 
     
    325338} 
    326339// ポップアップメニューを表示 
    327 function popup(user, id, ele) { 
     340function popup_menu(user, id, ele) { 
    328341        user_popup = user; 
    329342        callPlugins("popup", $('popup'), user, id); 
     
    359372                 (!no_name ? 
    360373                        //ユーザアイコン 
    361                         (tw.user.url ? '<a target="twitter" href="'+tw.user.url+'">' : '') + 
     374                        (tw.user.url ? '<a target="twitter" onClick="return clickLink(this)" href="'+tw.user.url+'">' : '') + 
    362375                        '<img align="left" width="32" height="32" src="' + tw.user.profile_image_url + '">' + (tw.user.url ? '</a>' : '') + 
    363376                        //名前 
     
    369382                //本文 (https〜をリンクに置換 + @を本家リンク+JavaScriptに置換) 
    370383                " <span id=\"text" + tw.id + "\" class=\"status\">" + 
    371                 tw.text.replace(/https?:\/\/[\w!#$%&'()*+,.\/:;=?@~-]+/g, " <a target=\"twitter\" href=\"$&\">$&</a>") 
     384                tw.text.replace(/https?:\/\/[\w!#$%&'()*+,.\/:;=?@~-]+/g, " <a target=\"twitter\" onClick=\"return clickLink(this)\" href=\"$&\">$&</a>") 
    372385                                .replace(/@([\w-]+)/g, "<a href=\"http://twitter.com/$1\" onClick=\"switchUser('$1'); return false;\" >$&</a>").replace(/\r?\n|\r/g, "<br>") + '</span>' + 
    373386                //日付'クライアント 
     
    378391                (tw.in_reply_to_status_id ? ' <a class="button" href="#" onClick="dispReply(\'' + un + '\',' + tw.in_reply_to_status_id + ',this); return false;">☞</a>' : '') + 
    379392                //popupメニュー表示 
    380                 '&nbsp;&nbsp;&nbsp;<a class="button popup" href="#" onClick="popup(\'' + un + "'," + tw.id + ', this); return false;"><small><small>▼</small></small></a>' + 
     393                '&nbsp;&nbsp;&nbsp;<a class="button popup" href="#" onClick="popup_menu(\'' + un + "'," + tw.id + ', this); return false;"><small><small>▼</small></small></a>' + 
    381394                '</span><br clear="left">'; 
    382395} 
     
    386399                                        '<b>' + user.screen_name + '</b> / <b>' + user.name + '</b><br>' + 
    387400                                        (user.location ? '<b>Location</b>: ' + user.location + '<br>' : '') + 
    388                                         (user.url ? '<b>URL</b>: <a target="twitter" href="' + user.url + '">' + user.url + '</a><br>' : '') + 
     401                                        (user.url ? '<b>URL</b>: <a target="twitter" onClick="return clickLink(this)" href="' + user.url + '">' + user.url + '</a><br>' : '') + 
    389402                                        (user.description ? user.description : '') + 
    390                                         '</td></tr></table><a target="twitter" href="http://twitter.com/' + user.screen_name + '">[Twitter]</a> <a href="javascript:switchFav()">[fav]</a> '; 
     403                                        '</td></tr></table><a target="twitter" onClick="return clickLink(this)" href="http://twitter.com/' + user.screen_name + '">[Twitter]</a> <a href="javascript:switchFav()">[fav]</a> '; 
    391404} 
    392405// favoriteの追加(f=true)/削除(f=false) 
     
    634647function switchMisc() { 
    635648        switchTo("misc"); 
    636         $("tw2h").innerHTML = '<p><a target="twitter" href="index.html"><b>twicli</b></a> : browser-base Twitter client</p><hr>' + 
     649        $("tw2h").innerHTML = '<p><a target="twitter" onClick="return clickLink(this)" href="index.html"><b>twicli</b></a> : browser-base Twitter client</p><hr>' + 
    637650                                        '<p><form onSubmit="switchUser($(\'user_id\').value); return false;">show user info : @<input type="text" size="15" id="user_id" value="' + myname + '"><input type="image" src="go.png"></form></p><hr>' + 
    638651                                        '<p><b>Preferences:</b><form onSubmit="setPreps(this.limit.value, this.maxc.value, this.maxu.value, this.list.value, this.user_style.value); return false;">max #msgs in TL: <input name="limit" size="3" value="' + nr_limit + '"><br>#msgs in TL on update (max=200): <input name="maxc" size="3" value="' + max_count + '"><br>#msgs in user on update (max=200): <input name="maxu" size="3" value="' + max_count_u + '"><br>Plugins:<br><textarea cols="30" rows="4" name="list">' + pluginstr + '</textarea><br>user stylesheet:<br><textarea cols="30" rows="4" name="user_style">' + user_style + '</textarea><br><input type="submit" value="Save"></form></p><hr>' 
     
    651664        alert("Saved in Cookie. Please reload."); 
    652665} 
     666// 初期化 
     667function init() { 
     668        setTimeout(scrollTo, 0, 0, 1); 
     669        // 初回アップデート 
     670        setTimeout(update, 0); 
     671        setInterval(update, 45*1000); 
     672        // ログインしていなかったときなどに20秒でログインを試みる 
     673        failover_timeout = setTimeout(function(){ switchTo("misc"); $("tw2c").innerHTML = '<iframe style="display:block" src="http://twitter.com/home" width="100%" height="400"></iframe>' }, 20*1000); 
     674} 
    653675// プラグイン 
    654676function registerPlugin(obj) { 
     
    667689                document.write('<scr'+'ipt src="'+list[i]+'"></scr'+'ipt>'); 
    668690} 
    669 // 初期化 
    670 function init() { 
    671         setTimeout(scrollTo, 0, 0, 1); 
    672         // 初回アップデート 
    673         setTimeout(update, 0); 
    674         setInterval(update, 60*1000); 
    675         // ログインしていなかったときなどに20秒で本家にリダイレクト 
    676         failover_timeout = setTimeout(function(){ switchTo("misc"); $("tw2c").innerHTML = '<iframe style="display:block" src="http://twitter.com/home" width="100%" height="400"></iframe>' }, 20*1000); 
    677 } 
    678  
    679691// ホイールの回転でスクロール (スクロール不可のウィンドウ・フレーム内で有効) 
    680692function wheel(event) { 
     
    696708window.onmousewheel = document.onmousewheel = wheel; 
    697709 
     710// 自ユーザ名ロード 
    698711loadXDomainScript('http://twitter.com/statuses/user_timeline.json?count=1&callback=twUser'); 
    699712</script>