忙しい現代人の腰&肩のお悩み対策!

Perl 初心者です。よろしくお願いします。以下のように変数$wwwstr を作って表示させたいのですが、<body>にはリンク表示できても、Textarea ないには変数の中身が表示されてしまいます。
原因が分かりません。Style のせい?Form の部品のせい?
よろしく御教示下さい。

#!/usr/local/bin/perl
$wwwstr = 'http://www.germanft.com/DETAIL.html';
$disp_data= '<a href=' . $wwwstr . '>' . '(WWW)' . '</a>';
##### 表示部 ##############
print <<EOD;
Content-type: text/html; charset=sjis-jp;
<HTML>
<HEAD>
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE></TITLE>
</HEAD>
<BODY bgcolor="#fcf2d8">
$disp_data

<FORM method="POST" action="EditDic.cgi" name="kdicFORM">
<TEXTAREA rows="12" cols="40" name="dicdata";
style="background-color:#EBF2DF;
padding:8px;
font-size:12pt;
font-weight:bolder;
line-height:16pt; border:5px double #008040;
font-family: 'MS P明朝',serif">$disp_data</TEXTAREA>
</FORM>
</BODY>
</HTML>
EOD
__END__

このQ&Aに関連する最新のQ&A

A 回答 (2件)

>では何かうまい手を使って、テキストエリア内の任意の文字列にリンクを張ることはできませんでしょうか?



HTMLの仕様に反しているはずなので、やりたいのであれば、ブラウザを改良(改造?)しない限り無理でしょう。

テキストエリアの内容を変更して送信したいとかとなると無理ですが、テキストエリアを使用せずに、似たように表示したいだけなら、インラインフレームを使えばなんとかなりますが。

方法としては、

(1) インラインフレームを使う

まず、$disp_dataを出力するCGIを別途作る
出力は、

<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=shift_jis">
</HEAD>
<BODY>
$disp_data
</BODY>
</HTML>

程度で良いでしょう。
これでリンク部分ができあがり。
ここでは、適当に link.cgi とでもしておきます。

次に、元々のCGIの方でインラインフレームを使用するようにします。
<FORM>~</FORM>の部分を<IFRAME>~</IFRAME>に変更。

<IFRAME src="link.cgi" height=300 width=300>
IFRAME対応のブラウザでないと見れません。
</IFRAME>

こんな感じで、srcに先のlink.cgiを指定します。
見た目は、テキストエリアに近いと思いますが、IFRAMEを使えないブラウザもあるので注意が必要です。
どちらかというと、こちらの方が素直なやり方でしょう。

※クリックされたときに、フォームで何か送信したいのだとしたら、内容をHIDDENでセットしておき、アンカータグにonclickイベントを設けて、フォームをsubmitさせれば良いでしょう。

(2) テキストエリアをクリックしたら・・・

テキストエリアでトリッキーなことをします。

<TEXTAREA
onclick="window.open('$wwwstr','new','');"
style="text-decoration:underline;">(WWW)</TEXTAREA>

フォント色は帰られないと思いますが、下線を引いてリンクっぽく見せる。
テキストエリアがクリックされたら、リンク先に飛ばす。
window.openでなく、location.hrefでも良いですが。
まあ、こんなサイトがあったら、私は二度と見に行かないような気がしますが(笑)
    • good
    • 1
この回答へのお礼

I am alive 様、お礼が遅れてしまい、申し訳ありません。(1)の方法でまず途中までできました。途中まで、ともうしますのは、先回、(1)のうしろに書き添えて下さった;
※クリックされたときに、フォームで何か送信したいのだとしたら、内容をHIDDENでセットしておき、アンカータグにonclickイベントを設けて、フォームをsubmitさせれば良いでしょう。
--これが初心者の私にできたらすごい!と予感させてはくれるのですが、力不足でプログラムができません。<FORM action="zzz.cgi" name=ancherFORM><INPUT type=HIDDEN...</FORM> と<A href=xx onclick=submit() >文字列</A>

などとまだ頭の中で考えているうちどんどん日数が経ってしまい、ご返事するのが遅れあわてております。
どうも<FORM..>以下いまいち見通しが立ちません。アドバイスをいただければ幸いです。

お礼日時:2004/07/03 17:53

<TEXTAREA>~</TEXTARE>で囲まれたテキストは、そのまま表示されます。


Perlではなく、普通にHTMLで書いてみればわかります。

<TEXTAREA><a href="URL">(WWW)<a></TEXTAREA>

↑これだと、テキストエリアの中に、

<a href="URL">(WWW)<a>

と表示されるはず。
テキストエリアの中でリンクは張れません。

http://tohoho.wakusei.ne.jp/html/textarea.htm

参考URL:http://tohoho.wakusei.ne.jp/html/textarea.htm
    • good
    • 0
この回答へのお礼

ありがとうございました。では何かうまい手を使って、テキストエリア内の任意の文字列にリンクを張ることはできませんでしょうか?アイディアが浮かびません。お知恵を拝借できれば有り難いのですが。。。

お礼日時:2004/06/22 05:51

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qテキストボックスの中にリンクを貼りたい

他の方がすでに質問されていたらすみません。急いでいます。
テキストボックスの中にリンクを貼りたいのです。
<FORM>
 <textarea name="name"readonly>
  http://****
</textarea>
</FORM>
カテ違いかもしれないのですが、何か方法があれば教えてください。
もしくは有用なURLをお願いします。

よろしくお願いします。

Aベストアンサー

>cssでテキストエリアのような働き(スクロール)をさせる事ができるのですか?
もともと #1 の方の提案が CSS です。
で、
>表示領域がレイアウト上決まっていて、
>更新履歴が増えるとスクロールできるからという理由
これを意識した例示が以下になります。
<textarea name="snmKotaName" readonly>りれき1
りれき2
りれき3</textarea>
</form>
<div style="background:#ffffff; border:inset; width:10em; height:2em; overflow:auto;">
りれき1<br>
りれき2<br>
りれき3<br>
</div>
上がテキストエリアで下がCSSです。
マージンなど他の値を出来るだけ素にする為に div要素 を選択しましたが、P要素 など他のブロック要素でも出来ます。
尚、幅,高さは未指定のテキストエリアに近い様にしただけですので、必要に応じて変更して下さい。


それと一応知識として、インラインフレームも同じ様な形になりますが・・・。

>cssでテキストエリアのような働き(スクロール)をさせる事ができるのですか?
もともと #1 の方の提案が CSS です。
で、
>表示領域がレイアウト上決まっていて、
>更新履歴が増えるとスクロールできるからという理由
これを意識した例示が以下になります。
<textarea name="snmKotaName" readonly>りれき1
りれき2
りれき3</textarea>
</form>
<div style="background:#ffffff; border:inset; width:10em; height:2em; overflow:auto;">
りれき1<br>
りれき2<br>
りれき3<br>
</div>
...続きを読む

Qテキストボックス内にハイパーリンクを張ることはできますか?

ホームページ作成について教えてください。トップページに「最新のお知らせ」を
テキストボックスで作成しようと思うのですが(ページレイアウトを崩さないため)、テキストボックス内から関連ページにハイパーリンクを張ることはできます
か?ためしに<a href= > </a>と書いたら、その通りに表示されてしまいました。

Aベストアンサー

> これをどちらの場合でも一発で解決する方法というのはないのでしょうか?

後は、FRAME できざむしかないですね。

FRAME を使っていることをあまり意識させたくないのであれば FRAMEBORDER を
NO にすれば良いかな。

Q

現在、CSSでホームページを作っているのですが、IEではうまくセンター表示できるのですが、firefoxなどでは左によってしまいます。

bodyに<div align="center">を記載せずにCSSだけでセンターに表示させることは出来ないものでしょうか?ちなみにIEでセンターによってしまうのはバグだと聞いたことがあるのですが、本当でしょうか?

よろしくお願いします。

Aベストアンサー

まぁ、MozillaとIEで表示が違えば大抵IEのバグですが、IEが正解でMozillaが違ってる場合もあります。
今回の件は具体的にどんなんだかわからないので分かりません。

で、基本的なCSSでのセンタリングですが、例えばブロック要素を真ん中に持ってくる場合は、その真ん中に持ってきたいブロック要素自身のマージンでセンタリングします。

例えば、
<div style="width:100px; margin:0 auto 0 auto;">まんなかです</div>
とすると、こいつは親要素に対して左右均等のマージンを取る。つまりセンタリングされます。

ブロック要素の中のテキストやインライン要素をセンタリングするにはtext-alignを使います。
<div style="width:100px; text-align:center;">まんなかです</div>

それと、注意したいのは、一行目の文頭に<!DOCTYPE~>を書かないとIEは互換モードでレンダリングしだしますので、CSS解釈も(ますます)変になりますのでご注意を。

こんな感じで。

No.1の方のサイト、参考になりますよ。私も昔これ見て勉強しました(笑)。

まぁ、MozillaとIEで表示が違えば大抵IEのバグですが、IEが正解でMozillaが違ってる場合もあります。
今回の件は具体的にどんなんだかわからないので分かりません。

で、基本的なCSSでのセンタリングですが、例えばブロック要素を真ん中に持ってくる場合は、その真ん中に持ってきたいブロック要素自身のマージンでセンタリングします。

例えば、
<div style="width:100px; margin:0 auto 0 auto;">まんなかです</div>
とすると、こいつは親要素に対して左右均等のマージンを取る。つまりセンタリングされ...続きを読む

Qシンボルが見つかりませんというエラーが理解できません。

以下のようなじゃんけんゲームのプログラムを書いたのですが、「シンボルが見つかりません。」というエラーが表示されるのですが、エラーの意味が理解できず、解決できません。どこが間違っているのか教えていただけませんか。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class janken extends Applet
implements Runnable, ActionListener {
private static final int EXTERNAL_BUFFER_SIZE = 128000;

Image image[] = new Image[3];
Thread t;
int index1 = 0;
int index2 = 0;
String msg = "";
String msg1 = "";

boolean state = false;
Button b1 = new Button("ぐー");
Button b2 = new Button("ちょき");
Button b3 = new Button("ぱー");

public void init(){
for(int i = 0; i<=2; i++){
img[i] = getImage(getDocumentBase(),"hanabi" + (i+1) + ".JPG");
}
add(b1);
add(b2);
add(b3);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
msg1 = "結果は・・";

}

public void paint(Graphics g){
g.drawImage(img[index1],350,30,this);
g.drawImage(img[index2],695,30,this);
g.drawString("コンピューター",420,300);
g.drawString("あなた",800,300);
g.drawString(msg,630,320);
g.drawString(msg1,550,320);
}

public void start(){
state = true;
t = new Thread(this);
t.start();

}

public void run(){
while(state){
index1++;
if(index1 == 3){
index1 = 0;
}
index2++;
if(index2 == 3){
index2 = 0;
}
repaint();
try {
Thread.sleep(60);
}catch(InterruptedException e) { }
}
}

public void actionPerformed(ActionEvent e){
if(state == false) {
start();
return;

}
state = false;
if(e.getSource() == b1) {
msg = "ぐー";
index2 = 0;
}

else if(e.getSource() == b2){
msg = "ちょき";
index2 = 1;
}

else if(e.getSource() == b3){
msg = "ぱー";
index2 = 2;
}
check();
repaint();
}

public void check() {
if(index1 == index2) msg ="あいこ";


else if (index1 == 0) {
if(index2 == 2) msg="あなたの勝ち";
else msg ="あなたの負け";
}

else if(index1 == 1) {
if(index2 == 0) msg="あなたの勝ち";
else msg="あなたの負け";
}

else if(index1 == 2) {
if(index2 == 1) msg="あなたの勝ち";
else msg="あなたの負け";
}

}
}

以下のようなじゃんけんゲームのプログラムを書いたのですが、「シンボルが見つかりません。」というエラーが表示されるのですが、エラーの意味が理解できず、解決できません。どこが間違っているのか教えていただけませんか。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class janken extends Applet
implements Runnable, ActionListener {
private static final int EXTERNAL_BUFFER_SIZE = 128000;

Image image[] = new Imag...続きを読む

Aベストアンサー

「シンボルを見つけられません。」というエラーの下に何か表示がありませんでしたか?そこにヒントがあると考えられます。
シンボルを見つけられませんといエラーが表示される主な理由は4つあります。
(1)クラス、メソッド、変数などの綴りミスや定義していない変数を使用している可能性がある。
(2)コンストラクタを呼び出すときに、newを忘れている可能性がある。(3)公開されていないメンバーを呼び出している可能性がある。
(4)必要なimport文を記述し忘れている可能性がある。
ここでのあなたのエラーは(1)番ではないでしょうか?上記ではimageとなっている変数がimgになっていますね。
これはエラー表示をよく見ることで意外と簡単に解決できるのです。
ゆっくり丁寧にエラー表示を見るように心がけることが大事ですよ。

QTEXTAREAからのデータを改行入りで表示したい

urizakaです。
さて現在、Tomcat+PostgreSQL+JavaでDBから持ってきたデータを
一度TEXTAREAに代入し、そこでデータの修正を行った後に、その修正
データを次の画面で表示するというプログラムを組んでいるのですが、
このTEXTAREAで入力したデータが、次の画面での表示の際にうまく
改行してくれません(改行なしで表示されます)。Tomcat上ではうまく
改行されて表示されているのですが・・・。
 いったいどうすれば、Web画面上でもうまく改行してくれるのでしょう?
「ソースコード(最初のページ)」
(前略)
<form name="form2" method="post" action="MContConf.jsp">
<p><font size="3"><b><font size="5">[改定]</font></b></font><BR>
<BR><TEXTAREA NAME="Cont2" ROWS="20" COLS="100" WRAP="hard">
 <%=mcont%></TEXTAREA></p>
<input type="submit" name="submit" value="上記フォームで送信">
</form>
(後略)

「ソースコード(次の画面)」
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=EUC-JP">
<%@ page contentType="text/html; charset=EUC_JP" %>
<%@ page import="BasisBean,java.util.*" %>
<jsp:useBean id="Basisbean" class="BasisBean">
<% //↓文字化け対策
String Content = Basisbean.cSet(request.getParameter("Cont2"));
//↓これでTomcatに表示させると、Tomcat上では改行して表示する
System.out.println("answer : " + Content);
%>
<html><body bgcolor="#FFFFFF" text="#000000">
<p align="center"><b>以下のような内容で送信します。</b></p>
<p><b><font size="4"><%=Content%></font></b></p></body>
</jsp:useBean></html>
Java環境はJ2SDK1.4です。
すみませんが、ご存知の方、よろしくお願いします。

urizakaです。
さて現在、Tomcat+PostgreSQL+JavaでDBから持ってきたデータを
一度TEXTAREAに代入し、そこでデータの修正を行った後に、その修正
データを次の画面で表示するというプログラムを組んでいるのですが、
このTEXTAREAで入力したデータが、次の画面での表示の際にうまく
改行してくれません(改行なしで表示されます)。Tomcat上ではうまく
改行されて表示されているのですが・・・。
 いったいどうすれば、Web画面上でもうまく改行してくれるのでしょう?
「ソースコード(最初のページ)」
...続きを読む

Aベストアンサー

申し訳有りません。自己レスです

>もしWindowsならばcrlfなので\r\nとなります。
>ですので\rのみ変換しても改行されてしまうと思われますがどうでしょう??
>replaceはchar単位での変換なのでindexOf等を使い変換ロジックを組んで
>見ればどうでしょうか??

replaceで変換されているのは\nでしたね。申し訳ありません。
ですが、replaceではchar単位での変換となるので、"<br>"という
文字列は変換できません。やはりindexOfを使うしかないと思います。

Q1つのformで複数のactionを実行できますか?

フォーム内に商品の購入ボタンがあります。同じフォーム内に商品名でグーグルのサイト内を検索させるボタンを設置し、横に並べることは可能ですか?
フォームの入れ子はよくないようなので、検索をJava scriptでできればよいのですが・・・
スタイルシートではデザイン上無理でした。

<form id="fm" name="fm" action="URL" method="POST">
<input type="hidden" name="shouhinmei" value="商品名">
<input type="hidden" name="kakaku" value="500">
<input type="image" src="kounyuu.gif value="購入">

<form method=get action="http://www.google.co.jp/search">
<input type=hidden class="q" name=q value="商品名"><input type=hidden name=ie value=UTF-8><input type=hidden name=oe value=UTF-8><input type=hidden name=hl value="ja"><input name=btnG type="image" src="検索.gif value="検索"><input type=hidden name=sitesearch value="サイトのURL"></form>
</form>
</form>

+----+  +----+
|購入|  |検索|
+----+  +----+

フォーム内に商品の購入ボタンがあります。同じフォーム内に商品名でグーグルのサイト内を検索させるボタンを設置し、横に並べることは可能ですか?
フォームの入れ子はよくないようなので、検索をJava scriptでできればよいのですが・・・
スタイルシートではデザイン上無理でした。

<form id="fm" name="fm" action="URL" method="POST">
<input type="hidden" name="shouhinmei" value="商品名">
<input type="hidden" name="kakaku" value="500">
<input type="image" src="kounyuu.gif value="購入">...続きを読む

Aベストアンサー

では、以下のような感じで。
なるべく多くのブラウザで動くように書いたつもりですが検証は充分行ってください。

<html>
<head>
<title></title>
<script type="text/javascript">
<!--
function searchGoogle(q) {
document.forms['searchForm'].elements['q'].value=q;
document.forms['searchForm'].submit();
return false;
}
//-->
</script>

</head>
<body>

<form action="URL">
~~
<input type="image" src="kounyuu.gif value="購入">
<a href="http://www.google.co.jp/" onclick="return searchGoogle('商品名')"><img src="検索.gif" border=0></a>
</form>

<form action="http://www.google.co.jp/search" id="searchForm" style="display:none;">
<input type=hidden name="q">
<input type=hidden name=ie value="UTF-8">
<input type=hidden name=oe value="UTF-8">
<input type=hidden name=hl value="ja">
<input type=hidden name=sitesearch value="サイトのURL">
</form>

</body>
</html>

では、以下のような感じで。
なるべく多くのブラウザで動くように書いたつもりですが検証は充分行ってください。

<html>
<head>
<title></title>
<script type="text/javascript">
<!--
function searchGoogle(q) {
document.forms['searchForm'].elements['q'].value=q;
document.forms['searchForm'].submit();
return false;
}
//-->
</script>

</head>
<body>

<form action="URL">
~~
<input type="image" src="kounyuu.gif value="購入">
<a href="http://www.google.co.jp/" onc...続きを読む

Q【Excel】 セルの色での判断はできますか?

使用環境:Office2003

条件付書式を使用して、セルの値がxxならばセルを着色する・フォントを変える、というのは可能ですが、

逆に

セルの色がxx(例えば赤等)ならば、隣のセルに1を代入する

ということは可能でしょうか?
※VBAを使わなければそれにこしたことはないですが、
 必要ならばコーディングも教えてください

よろしくお願いします。

Aベストアンサー

過去の質問を検索していただくと、たくさんの事例がありますが、結論から言うとVBAを使用しないとセルの色は取得できません

>セルの色がxx(例えば赤等)ならば、隣のセルに1を代入する
VBAを使用すればもちろんできますが、これは「例えば」の質問であって、このコードを書いても意味はないのでは?

ですから汎用的に使えるユーザ定義関数にしました。以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。
ワークシート画面に戻って、適当なセルに
=CellColor(A1)
と入力してみて下さい。A1セルの色番号が表示されます。(背景色なしの場合は0が返ります)
この戻り値判定して、関数などでセルに値をセットすればよいでしょう

Function CellColor(ByVal rng As Range)
With rng.Cells(1, 1).Interior
If .ColorIndex = xlNone Then
CellColor = 0
Else
CellColor = .ColorIndex
End If
End With
End Function

ただしセルの背景色を後から変えても、ユーザ定義関数の戻り値は自動的には変わりません。式を入力した後で背景色を変更した場合は
 ALT+Ctlr+F9
で強制再計算させる必要があります。

過去の質問を検索していただくと、たくさんの事例がありますが、結論から言うとVBAを使用しないとセルの色は取得できません

>セルの色がxx(例えば赤等)ならば、隣のセルに1を代入する
VBAを使用すればもちろんできますが、これは「例えば」の質問であって、このコードを書いても意味はないのでは?

ですから汎用的に使えるユーザ定義関数にしました。以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて...続きを読む

Q別ウィンドウ target="new"

<a アンカーで
無関連のサイトをリンクする場合に、target="_blank" を利用し
別ウィンドウで開く設定をしていました。

target="new"について、
target="new"は、フレームに利用すると思っていましたし
調べてもそう書いておりました。
でも実際、フレームが無い場合は、別ウィンドウが開くと思います...
target="_blank" と target="new" は、
同じ動作をすると思うのですが・・・

質問
target="_blank" と target="new" 違うのでしょうか?
フレームを利用しない場合に別々に使い分ける事があるのでしょうか?

Aベストアンサー

どこで定義されている動作か確認していませんが
Webの技術には、多々規格として定義されているものと
規格として定義されていない、実際のウェブブラウザーでの対応…
それに規格に反したウェブブラウザーの挙動の三つの状況があります。

規格としてはtarget指定の動作にフレームへの表示がありますが
一般的なウェブブラウザーでは、規格以前に実際に表示すべきフレームが無い場合に
target指定はすべて新しいウィンドウとして表示するように作られていると思います。
(表示されないと困りますし、エラーで状況を説明されても
大半の閲覧者はそこで対策をとることができません<ウェブサイト側の不備による場合)

QHTMLフォームのSELECTの幅を一定にするためには?

HTMLフォームのSELECTの幅を一定にするためにはどのようにすれば
いいのでしょうか?

CSS等で設定できるとありがたいのですが、やり方がわかりません。

Aベストアンサー

<select style="width: 200px">


人気Q&Aランキング