の形で呼ぶ。
//
// anchor_idはフレームを使う場合最低限各フレームごとに設定。お互い他のフレームを書換えたときにへんな干渉をさけるため。
// その他ページの種別毎などで変えてもよいが、あまり小分けにするとcookieが増える。
// 同じanchor_idで保存されるcookieは1セットのみ。でも単独ページ表示のサイトなら概ねこれで充分。
anchor_id = "anc_main";
noanchor = false; // bodyにanchorをしかけたときなど場合によって一時無効にするためのフラグ。
// アンカーの記憶。
function anchor_save(object_id, page_id) {
if(noanchor) { anchor_erase(); return; }
get_scroll();
setcookie(anchor_id+"_pid", page_id, 0);
setcookie(anchor_id+"_st", scroll_top, 0);
setcookie(anchor_id+"_sl", scroll_left, 0);
if(object_id) {
object_top = scroll_top + get_object_top(object_id);
object_left = scroll_left + get_object_left(object_id);
setcookie(anchor_id+"_oid", object_id, 0);
setcookie(anchor_id+"_ot", object_top, 0);
setcookie(anchor_id+"_ol", object_left, 0);
} else {
setcookie(anchor_id+"_oid", "", -1);
setcookie(anchor_id+"_ot", "", -1);
setcookie(anchor_id+"_ol", "", -1);
}
}
// アンカーの適用。
function anchor_apply(page_id) {
if((saved_page_id = getcookie(anchor_id+"_pid")) && page_id != saved_page_id) { return; }
get_scroll();
if((anchor_st = getcookie(anchor_id+"_st")) != "" && (anchor_sl = getcookie(anchor_id+"_sl")) != "") {
anchor_st = parseInt(anchor_st);
anchor_sl = parseInt(anchor_sl);
} else {
anchor_st = scroll_top;
anchor_sl = scroll_left;
}
if((object_id = getcookie(anchor_id+"_oid"))
&& (anchor_ot = getcookie(anchor_id+"_ot")) != ""
&& (anchor_ol = getcookie(anchor_id+"_ol")) != "") {
offset_top = (scroll_top + get_object_top(object_id)) - parseInt(anchor_ot);
offset_left = (scroll_left + get_object_left(object_id)) - parseInt(anchor_ol);
} else {
offset_top = offset_left = 0;
}
window.scrollTo(anchor_sl + offset_left, anchor_st + offset_top);
}
// アンカー消去。あえてとっておく必要がなければanchor_apply()後すぐ消去が望ましい。
function anchor_erase() {
setcookie(anchor_id+"_pid", "", -1);
setcookie(anchor_id+"_st", "", -1);
setcookie(anchor_id+"_sl", "", -1);
setcookie(anchor_id+"_oid", "", -1);
setcookie(anchor_id+"_ot", "", -1);
setcookie(anchor_id+"_ol", "", -1);
}
//-->
倉金家ホームページ
趣味の部屋/サーバー構築メモ その3/仮想マシン
|
|
OSに関しては、本体と同じCentOSにするかそれとも別のものにするかちょっと迷いましたが、同じものをやってもなんか面白くないので今回は Vine Linux でやってみます。 別に急がないので暇を見てはのんびりやります。
|
Vine Linuxのサイトより最新のisoイメージファイルをダウンロードし保存。 /home/Vine6.2/Vine621-DVD-x86_64.iso として。
仮想マシンマネージャーを起動。 新しい仮想マシンの作成ボタンをクリック 仮想マシンの名前:VineLinux OSをどのようにインストールするか:ローカルのインストールメディア(isoイメージまたはCD-ROMドライブ) →進む インストールメディアの場所: isoイメージを使用:/home/Vine6.2/Vine621-DVD-x86_64.iso OSの種類とバージョン OSの種類:Linux バージョン:Generic 2.6.x kernel …VineLinuxはリストになかったので。VineLinux6.2.1のkernelは3.4だけど...。 →進む メモリーとCPUの設定 メモリー:2048 MB …搭載メモリーは8000MB CPU:2 …CPUはi5で 4 core →進む この仮想マシンでストレージを有効に のところの コンピュータのハードディスク上にディスクイメージを作成 は選択しないがすぐ下の項目の設定は必要。 …以下2項目が内部項目のようにレイアウトされているが実際はちがう。 40 GB …(例)。割り当てたい容量を今ここで指定! 今すぐディスク全体を割り当てる にチェック! 管理しているストレージか、他の既存のストレージを選択する を選択 選択:/vm/VineLinux →進む インストール前に設定をカスタマイズする は無理にやらないほうがいいみたい。そうすれば自動的に最適値(default)がセットされるので、あとで必要な部分のみを変えたほうがいい。(全く同じ設定画面が仮想マシンマネージャーにあり。) 詳細なオプション で ホストデバイス eth1 (Bridge 'br1') …使用したいネットワークデバイスを選択。仮想ネットワーク'default':NAT では外部からアクセスできない。 固定 MACアドレスを設定 にチェック (MACアドレスを必要なら編集。仮想なのでたぶんそのままでいい。) 仮想化の種類:kvm アーキテクチャー:x86_64 完了 で開始。 仮想ディスクの作成、フォーマットにしばらく時間がかかります。 あとは従来どおりお好みでインストール。
|
Vine Linux の今のバージョンは root login ができません。 これだといちいち sudo しなくてはならないので、最初いくつも設定を繰り返す場合不便。 で、あえて root login できるようにします。 /etc/pam.d/gdm を 右クリックでプロパティーから使うエディタを変更、次に管理者として開くで編集。 auth required pam_succeed_if.so user != root quiet の行(上から2行目)をコメントアウト。 #auth required pam_succeed_if.so user != root quiet これで root login が可能に。その後適当なところで元に戻します。
|
実際動かしてみると日本語入力がなぜだかうまくいきません。
日本語入力は当初Mozcになっていましたが、なぜだかローマ字のまま(半角のまま)入力され、全然変換できません。 …rootログインでこの現象が起こるとの情報あり。 →anthy、ibus-anthyをインストールして切り替え、OK。
アンダースコア(_)が入力できません。検索してみると同じような問題があると見えてすぐ解決法は見つかりました。 →ホストマシン側の/etc/libvirt/qemu/(ゲストマシン名).xmlの<graphics>に keymap='ja'を追加。 <graphics type='vnc' port='-1' autoport='yes' keymap='ja'/>
仮想マシンの場合実際にはハードウェアと切り離されて間にqemuなどのインターフェースがかんでいるのでこのようなことが起こるのでしょうか。
|
|
|