はじめまして 2003.3.13.Thu No.1547
はじめまして。
小説を書いているのですが、小説の主人公の名前を変えたりするには、どうしたらいいのでしょうか…?
すみません、誰か教えて下さい。
Re:はじめまして 回答者1 2003.3.13.Thu No.1548
初めまして。
それは俗に言う「ドリーム小説」を指していると考えてよろしいのでしょうか・・・?
それでしたらこちら→http://www.wup.jp/~raika/Dream/index.html
Re:はじめまして ぴろあき 2003.3.13.Thu No.1550
最初にユーザーに名前を入力させ、それを document.write()
で書き出す方法が一般的ですね。「ドリーム小説」もその類いのものがほとんどです。(それ以外のは見たことないですけど)
ただ、この方法は JavaScript をオフにしていると名前の部分が表示されず、すっぽり抜ける形になってしまいます。これは小説として致命的な欠点でしょう。
さらに、小説が複数ページにまたがると、ページを移った時に名前が引き継がれない難点もあります。(これは cookie の使用で解決できます)
以前に似たようなスクリプトを作ったんで、サンプルとして出しておきます。高度な処理を使うために対応ブラウザは限られますが、上記のような欠点をすべて克服してあります。(ついでに複数キャラ対応にリファインしてみました)
Re:はじめまして 2002.3.14.Fri No.1557
どうも、ありがとうごさいます!助かりました♪
これからももしかしたらお世話になるかもしれないので、よろしくおねがいします!
スクリプトが <span class="クラス名">規定の名前</span>
と指定された部分を探し、設定に対応するクラス名を見つけたら名前を書き換えます。規定の名前を <span>
で挟むだけなので、手間も少なく見た目もわりかし綺麗です。もちろん、クラス名は自由に決められます。
cookie の使用により、小説が複数ページにまたがる場合にも対応します。また、外部ファイル方式を採用しているので設置も簡単です。
ただし、このスクリプトを使うHTMLファイルは、すべて同じフォルダ(ディレクトリ)に入れておく必要があります。これはスクリプトの仕様によるものです。外部スクリプトファイルはどこに置いても構いません。
小説は普通に書いてください。登場人物名も、規定の名前で書きます。これはユーザーが名前を変更しなかった場合や非対応ブラウザの時に使われます。
最初の1回め(=cookie がない時)は、 を押すと名前を聞くダイアログが出ます。入力された名前は cookie に保存されます。(入れなかった時は変換されませんが、cookie は無条件に作ります)
次回以降は cookie が保存されている限り、自動で名前が変更されます。途中で別の名前にする時は、もう一度 を押します。
このサンプルでは cookie の保存日数を1日にしてあるので、必要に応じて変更してください。
name[0] = "tarou,太郎の名前を決めてください"; //<span class="tarou"> の中身を入力値に変換
name[1] = "hanako,花子の名前を決めてください"; //<span class="hanako"> の中身を入力値に変換
name[2] = "ichirou,一郎の名前を決めてください"; //<span class="ichirou"> の中身を入力値に変換
var cookiePeriod = 1; //cookieの保存日数(必要に応じて変更)
<span class="設定したクラス名">規定の名前</span>
のように加工します。テキストエディタの検索置換機能を使うと手っとり早いでしょう。
<input type="button" onclick="nameRewrite('rename')" value="登場人物の名前を変更">
<form>
の中に入れないとボタンが表示されなかったりしますが、そういったブラウザでは動かないので、むしろその方が好都合。
<script type="text/javascript" charset="Shift_JIS" src="nameRewrite.js"></script>
<head>
の中に上記の一行を入れ、外部スクリプトを呼び出すだけです。外部スクリプトを別のフォルダに置く場合はパスの修正も忘れずに。このスクリプトはページのオンロードイベントを使います。他のスクリプトですでに window.onload
や <body onload="">
がある場合、スクリプトの修正が必要です。
このページは、質疑応答掲示板で使用した回答の残骸です。検索エンジンに捕まったりリサイクルしたりすることもあろうので、なんとなく残してあります。広く公開しているページではありませんが、第3者の閲覧を禁止するものでもありません。
恒久的なURIは保証できないものの、よほどのことがない限り削除されることはないでしょう。心配性な人はページの保存をおすすめします。(IEは mht 形式でないと保存できないかも)