javascriptのソースを見せたくない

[上に] [前に] [次に]
javascript初心者 1999/07/26(月) 20:48:03
javascriptでソースを見せたくない、というかhtmlファイルの中身
を見やすくしたいので*.jsファイルで外におきたいのですが、
うまくいきません。
どうすればよいのでしょう。
htmlソース1をhtmlソース2とjsファイルに分けました。



htmlソース1

<HTML>
<HEAD>
<TITLE>日付・時刻(テキスト)</TITLE>
</HEAD>
<BODY bgcolor="#FFFFFF">
<SCRIPT language="javascript">
function toki() {
dat = new Date()
a1 = dat.getYear();
a2 = dat.getMonth() + 1 + "月";
a3 = dat.getDate()+"日";
a4 = dat.getHours()+"時";
a5 = dat.getMinutes()+"分";
a6 = dat.getSeconds()+"秒";
if (a1 < 2000){
a1 = a1 + 1900 + "年";
}else{
a1 = a1 + "年";
}

document.eria.txt1.value = a1+a2+a3+a4+a5+a6;
document.eria.txt2.value = a1+a2+a3;
document.eria.txt3.value = a4+a5+a6;
setTimeout("toki()",1000); // 1000msec = 1sec
}

</SCRIPT>
<CENTER>
<BR>
<BR>
<H1><U>リアルタイムな日付と時間</U></H1>
<BR>
<BR>
<FORM NAME="eria">
<B><FONT color="#0000ff">日付・時間:<INPUT name="txt1" size="32">
<BR>
<BR>
<HR align="center" size="3" width="500">
<BR>
<BR>
日 付:<INPUT name="txt2" size="16">
<BR>
<BR>
<HR align="center" size="3" width="500">
<BR>
<BR>
時 間:<INPUT name="txt3" size="14">
</FONT></B>
</FORM>
<SCRIPT language="JavaScript">
      toki();
</SCRIPT>
<BR>
<BR>
<BR>
</CENTER>
</BODY>
</HTML>

htmlソース2

<HTML>
<HEAD>
<TITLE>デジタル時計のテスト</TITLE>
<SCRIPT language="JavaScript" SRC="toki.js">
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<SCRIPT LANGUEGE="JavaScript">
toki();
</SCRIPT>
</BODY>
</HTML>


jsファイル

function toki()
{
dat = new Date()
a1 = dat.getYear();
a2 = dat.getMonth() + 1 + "月";
a3 = dat.getDate()+"日";
a4 = dat.getHours()+"時";
a5 = dat.getMinutes()+"分";
a6 = dat.getSeconds()+"秒";
if (a1 < 2000)
{
a1 = a1 + 1900 + "年";
}
else
{
a1 = a1 + "年";
}

document.eria.txt1.value = a1+a2+a3+a4+a5+a6;
setTimeout("toki()",1000); // 1000msec = 1sec
}


最後に長々と書いてしまって申し訳ございません。
どうかよろしくお願いいたします。

maeda [E-Mail] 1999/07/26(月) 21:23:57
情報が少ないので推測ではありますが、要因はいくつか考えられます。

1.異なるディレクトリに入っている。
 ディレクトリ指定が間違っているために、うまくリンクできません。

2..jsファイルがShift JISコードでない。
 IEの場合、JavaScriptファイルはShift JISコードでなければなりません。

3.MIMEタイプとして、application/x-javascriptを指定していない。

ちゃわ 1999/07/26(月) 22:40:14
htmlソース2
  eriaとかtxt1を定義しているFORMはどうしたのですか?
  それがないと、toki.jsの中で代入文が実行できませんけど・・・。
  ちなみに、FORMの部分を追加したところ、NNではちゃんと動きました。
  (IEではエラーになりました。)

  あと、こまかいことですが、LANGUEGEはLANGUAGEです。

ちゃわ 1999/07/26(月) 22:48:40
↑↑↑↑↑↑
すみません。言い忘れてました。
テストに使ったマシンはSolarisというUNIXマシンで、
漢字コードにEUCを使ってます。

文月 1999/07/26(月) 23:16:54
html1からJavaScriptの部分だけ抜いて、別ファイルにしてやったら、うごきましたよ。。
ちなみに、N4、E4...だけど、こういうことしても、ソースみられちゃうかも..
htmlのソース見たら、<SCRIPT language="JavaScript" SRC="toki.js">ってかいてあるのが
わかるから...
パーミッションの設定かなんかで防げるのかな?

TAKI 1999/07/26(月) 23:17:13
> IEの場合、JavaScriptファイルはShift JISコードでなければなりません。
http://www.shiojiri.ne.jp/~openspc/JavaScript/bug/ie4.txt
↑ここの[23]によると、
Mac版IE4.01/4.5 では仕様で UTF-8 (Unicode)しか
使えないそうです。

文月 1999/07/26(月) 23:19:13
あ、見られたくない、というわけじゃないんだ...失礼しました

javascript初心者 1999/07/27(火) 10:27:19
皆さん、数多くのレスを頂き有難うございます。
html2の方にFORMを追加したら動きました。
ところで、このFORMもjsファイルの中に入れられないでしょうか。

文月 1999/07/27(火) 11:33:17
>ところで、このFORMもjsファイルの中に入れられないでしょうか。

document.writeで、jsファイルに入れることはできるけど、
結局、HTMLで吐き出すので、ソース表示すれば、ユーザには、見えてしまいますが...

javascript初心者 1999/07/27(火) 12:34:17
>結局、HTMLで吐き出すので、ソース表示すれば、ユーザには、見えてしまいますが...


タイトルには見せたくないと書きましたが
htmlファイルの中身を整理するのが目的なので、
結果的に見られてもかまいません。

よろしくお願いいたします。

文月 1999/07/27(火) 13:15:30
>よろしくお願いいたします。

って、言われても、もう答えを書いたつもりだったのだけど....
こんなふうで、いいんじゃない?

function form_write(){
document.write("<FORM NAME='eria'><br>");
document.write("日付・時間:<INPUT name='txt1' size='32'><br>");
document.write("日 付:<INPUT name='txt2' size='16'><br>");
document.write("時 間:<INPUT name='txt3' size='14'><br>");
document.write("</FORM>");
}

javascript初心者 1999/07/27(火) 15:49:05
レス有難うございます。

jsファイルの中に
function form_write()以下を書き足して見ましたが、
次のようなメッセージが出ます。

行29
エラー'document.eria.txt1'はオブジェクトではありません
と出ます。
これは?

Tmb 1999/07/27(火) 16:18:08
> function form_write()以下を書き足して見ましたが、

1. html2の方からちゃんとform_write()を呼んでますか?
2. toki()とform_write()の呼びだす順番をちゃんと考えて置きましたか?

それで駄目なら,念のためということで
3. document.write 中の'と"を入れ替えてみる。
4. document.write 中の/を\/にしてみる
を試してみてください。

文月 1999/07/27(火) 16:30:18
ここで、動いてます(winNT,N4.6の環境)...参考にしてみて下さいませ...

http://members.tripod.com/aqua99/js/time_js.html

javascript初心者 1999/07/27(火) 17:09:10
文月さん、Tmbさん、TAKIさん、ちゃわさん、maeda さん
本当に有難うございました。

toki();
form_write();
となっていたところを
form_write();
toki();
としたら動きました。
動いたあとに上記のページで確認したところほぼ同じでした。
最初はtoki()しかなかった。動くわけないですよね(^^;)

僕も皆さんに負けないよう日々精進していきます。
早く人様にアドバイスできるくらいになりたい。(^^ゞ

ところで、htmlでするような文章の加工はjsファイルの中でもできるのですよね。
たとえばセンター寄せ。
htmlファイルの一部
<p align="center">
<script LANGUAGE="JavaScript">
form_write();
toki();
</script></p>
をjsファイルの中で実現する。

文月 1999/07/27(火) 18:31:28
同じように、document.writeで、書きまくる...だめ?

javascript初心者 1999/07/28(水) 12:41:38
[[解決]]
↑↑↑↑↑↑↑↑↑
ガンバッテやってみます。
アドバイスして下さったみなさん本当にありがとうございました。

[上に] [前に] [次に]