javascriptで
function textChange(id,text){
document.getElementById(id).innerHTML=text;
return document.getElementById(id).firstChild.nodeValue;
}
と関数を作っておいて、
<span onClick="textChange('indication_space','★')">メールアドレス</span>
の★の部分に
<script type="text/javascript" src="メールフォームのURL" charset="utf-8"></script>
という文字を入れたいのですがクォーテーションが重なっているためエラーが出ます。
★内の「"」を「\'」とした場合、エラーは出ませんが何も表示されませんでした。
解決法をご存知の方いらっしゃいましたらぜひご教授ください。
よろしくおねがいします。
No.4ベストアンサー
- 回答日時:
・ まだ分からないのですが、
<script type="text/javascript" src="mailform.js" charset="utf-8"></script>
だとしたら、HTMLのロード時はこれが実行されるのは理解できますが、動的にこれを挿入したときはそのままでは実行されないのではないでしょうか。そこで、
>>> 有効になるのは…スクリプトタグが初めて現れる時(マウスクリック)でしょうか…?
のようにクリックして動作させるには、全体を関数としてインクルードする必要があると思います。このときクリックが2回必要となります。
・ また、これも理解不足だったら申し訳ありませんが、
>>> 最後のくだりのやり方がわからないのですが、よろしければ詳しく教えて頂けないでしょうか。
に関しては、以下のコードを参考にしてみてください。
------------------------------------------------------------
この回答への補足
なるほど…、クォーテーションの問題ではないんですね。
全体を関数としてインクルードするというのは…メールフォームのjavascriptの全体を、という事でしょうか?
textChange(id,no)について
コードを実行したところ、送信をクリックすると「soushin()関数が見つからない」とエラーが出ました。
javascriptが正常に実行された場合の中身からsoushin()を探してみましたが見つかりませんでした…。
回答ありがとうございました。
No.6
- 回答日時:
#2です
エラーでませんよ。
環境がおかしいのか、噛み砕いて理解していないのかのどちらかでは?
<span onClick='textChange('indication_space','<script type="text/javascript" src="メールフォームのURL" charset="utf-8"></script>')'>メールアドレス</span>
この回答への補足
最後に書いてあるものだとエラーは出ませんでした。
ただ、やはり何も表示されません。
クォーテーションの問題は「\'」でも定数でもエスケープシークエンスでも(見た目とエラー面では)同じ結果なので、autyさんが仰っているようにjavascriptの書き方に問題がありそうです…。
質問の内容が変わってしまいますが、解決法がわかるようでしたらよろしくお願いします。
回答ありがとうございました。
No.5
- 回答日時:
#4 続き
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript"><!--
// alert(0);
var txt = new Array();
function textChange(id,no){
txt[0] = "<div id=mailform_top style='width:240px;'><div class='main' style='background-color:white;background-image:url(http://wcl.nobody.jp/image/movie/mail.gif);backg … bottom;background-repeat:no-repeat;border:solid 1px black;font-size:12px;font-family:MS ゴシック,Osaka,sans-serif;text-align:center;width:240;'><!--old_browser--><form id='mailform'><!--old_browser--><!--skin_html_tmp_top--><div><div class='name_top' style='width:100%;margin:3px 3px 3px 0px;clear:both;'><div class='name_left' style='color:black;width:240px;padding:2px 5px;text-align:text-align:center;;width:230px;'>[名前0]</div><div class='name_right' style='width:240px;padding:0px 5px;text-align:text-align:center;;width:230px;'><input type='text' name='na' style='width:180px;font-size:12px;' value='' class='name_parts'></div><BR clear='all'></div><div class='mail_top' style='width:100%;margin:3px 3px 3px 0px;clear:both;'><div class='mail_left' style='color:black;width:240px;padding:2px 5px;text-align:text-align:center;;width:230px;'>[メールアドレス0]</div><div class='mail_right' style='width:240px;padding:0px 5px;text-align:text-align:center;;width:230px;'><input type='text' name='ma' style='width:180px;font-size:12px;' value='' class='mail_parts'></div><BR clear='all'></div><div class='textarea_top' style='width:100%;margin:3px 3px 3px 0px;clear:both;'><div class='textarea_left' style='color:black;width:240px;padding:2px 5px;text-align:text-align:center;;width:230px;'>*<input type='hidden' name='tac' value='ta'>[コメント0]</div><div class='textarea_right' style='width:240px;padding:0px 5px;text-align:text-align:center;;width:230px;'><textarea cols='30' rows='8' style='font-size:12px;' name='ta' class='textarea_parts'></textarea></div><BR clear='all'></div><div class='submit' id='mailform_submit' style='text-align:center;'><!--submit_button_top--><input class='submit_button' type='button' value='送信0' name='submit' onclick=soushin('6765180988b0bb68c4305b8e2d7f5c10','mailform'); ><!--submit_button_end--></div></div><!--skin_html_tmp_end--></form></div><div id='shinobi_jp_text' style='font-size:10px;height:15px;text-align:left;width:125px;'>Powered by <a href='http://www.ninja.co.jp/' target='_blank'>NINJA TOOLS</a></div></div>";
txt[1] = "<div><div class='name_top' style='width:100%;margin:3px 3px 3px 0px;clear:both;'><div class='name_left' style='color:black;width:240px;padding:2px 5px;text-align:text-align:center;;width:230px;'>[名前1]</div><div class='name_right' style='width:240px;padding:0px 5px;text-align:text-align:center;;width:230px;'><input type='text' name='na' style='width:180px;font-size:12px;' value='' class='name_parts'></div><BR clear='all'></div><div class='mail_top' style='width:100%;margin:3px 3px 3px 0px;clear:both;'><div class='mail_left' style='color:black;width:240px;padding:2px 5px;text-align:text-align:center;;width:230px;'>[メールアドレス]</div><div class='mail_right' style='width:240px;padding:0px 5px;text-align:text-align:center;;width:230px;'><input type='text' name='ma' style='width:180px;font-size:12px;' value='' class='mail_parts'></div><BR clear='all'></div><div class='textarea_top' style='width:100%;margin:3px 3px 3px 0px;clear:both;'><div class='textarea_left' style='color:black;width:240px;padding:2px 5px;text-align:text-align:center;;width:230px;'>*<input type='hidden' name='tac' value='ta'>[コメント1]</div><div class='textarea_right' style='width:240px;padding:0px 5px;text-align:text-align:center;;width:230px;'><textarea cols='30' rows='8' style='font-size:12px;' name='ta' class='textarea_parts'></textarea></div><BR clear='all'></div><div class='submit' id='mailform_submit' style='text-align:center;'><!--submit_button_top--><input class='submit_button' type='button' value='送信1' name='submit' onclick=soushin('6765180988b0bb68c4305b8e2d7f5c10','mailform'); ><!--submit_button_end--></div></div>";
// http://mf1.shinobi.jp/call/6765180988b0bb68c4305 …
document.getElementById(id).innerHTML=txt[no];
return document.getElementById(id).firstChild.nodeValue;
}
//-->
</script>
</head>
<body>
[下をクリックしてください]
<hr />
<span onClick="textChange('indication_space',0)">メールアドレス0 (Powered by NINJA TOOLS)</span>
<hr />
<span onClick="textChange('indication_space',1)">メールアドレス1 (送信1)</span>
<hr />
<div id="indication_space">
</div>
</body>
</html>
No.3
- 回答日時:
<script type="text/javascript">
var M1 = "<script type='text/javascript' src='メールフォームのURL' charset='utf-8'></script>";
var M2 = "<script type='text/javascript' src='メールフォームのURL_NUMBER2' charset='utf-8'></script>";
function textChange(id,text){
document.getElementById(id).innerHTML=text;
return document.getElementById(id).firstChild.nodeValue;
}
function Mset( id, setnumber){
if( setnumber == 1 )
textChange( id, M1 );
}elseif( setnumber == 2 )
textChange( id, M2 );
}
</script>
<span onClick=" Mset('indication_space', 1)">メールアドレス</span>
こんな感じじゃ駄目ですか?
初めにスクリプトの中で
var M1 = "<script type='text/javascript' src='メールフォームのURL' charset='utf-8'></script>"
こんな感じで変数に文字列をセットしておいて。
クリックした時に飛ばしたい関数の前に、もうひとつ関数をかまして。
どこがクリックされたかを
<span onClick=" Mset('indication_space', 1)">メールアドレス</span>
の二つ目の引数(ここでいう、'indication_space'の後ろにある1)で判断して。
判断が出来た後に、textchangeに飛ばす
もっといい書き方あるとは思うのですが
自分も初心者なので・・・すみません
この回答への補足
えっと…、これはメールフォームが複数あるんですか…?
何か誤解をされているのか、私の理解力が足りないのか…。
質問文がわかりにくかったようでしたらすみません。
回答ありがとうございました。
No.2
- 回答日時:
これはjavasciptの問題というよりはhtmlの問題でしょうね
タグのonclickに直接スクリプトを書き込むと思わぬトラブルになります
別途functionを用意するのが妥当です。
インラインで書くと\"や\'がエスケープできないですからね・・・
とはいえ、どうしてもということであればhtmlのエスケープシークエンス
をつかう手もあります。
<span onClick='alert('<script type="text/javascript" src="メールフォームのURL" charset="utf-8"></script>')'>メールアドレス</span>
この回答への補足
メールフォームは他のサーバーにあるものを呼び出すので…
定数で
ex1 = "<script type='...' src='...' ...></script>"
として
textchange('indication_space','ex1')
とする事くらいしか思いつきませんが…これも「"」を「\'」とした時と同様、エラーは出ないが何も表示されない状態になりました。
エスケープシークエンスは普通に'と書いているように見られているようで、エラーが出ました。
何か別の方法などありましたらお願いします。
回答ありがとうございました^^
No.1
- 回答日時:
・ 「3重のクォーテーション」とは考えもしませんでしたが、こちらから質問させてください。
>>> エラーは出ませんが何も表示されませんでした。
うまくいっているかも知れませんが、何が表示されるのを期待していますか。
<script type="text/javascript" src="メールフォームのURL" charset="utf-8"></script>
これが動的にインクルードされたとき、いつそのJavaScriptは有効になるのでしょうか。
このJavaScriptが 「メールフォーム」を作成するのですか。
「3重のクォーテーション」の渡し方がうまく行っていない場合、
関数textChange(id,text)の引数(変数)として渡さないといけないとして、textChange(id,no)の中で、番号を付けておき、その番号を渡すという手はありませんか。
この回答への補足
http://aniline.web.fc2.com/temp_mail.html
上記したURLにあるメールフォームが表示されるのを期待しています。
ちなみに、「\'」を「'」に直し、タグの外へ貼れば正常に表示されます。
有効になるのは…スクリプトタグが初めて現れる時(マウスクリック)でしょうか…?
最後のくだりのやり方がわからないのですが、よろしければ詳しく教えて頂けないでしょうか。
回答ありがとうございました^^
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavascriptのHTMLクラス表示に...
-
javascriptで複数の表示・非表...
-
確認ダイアログを次からは表示...
-
CSSでreadonlyの機能はあり...
-
JavaScriptのinnerHTMLの挙動に...
-
formのsubmitを押すとモーダル...
-
Google マップ でKMLの情報が正...
-
Q&A掲示板の入力フォームに文字...
-
「ご処理進めて頂きますようお...
-
CloseとDisposeの違い
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
Excelシート上のマクロを登録し...
-
「PC Helpsoft Driver Updated...
-
Do~Loopした回数をカウントしたい
-
UMLでの例外処理
-
リストボックスの選択解除
-
DoEventsがやはり分からない
-
アクセスVBAのMe!と[ ]
-
switch の範囲指定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
動画の上に広告をオーバーレイ...
-
CSSでreadonlyの機能はあり...
-
jQueryでのドラッグアンドドロ...
-
formのsubmitを押すとモーダル...
-
Q&A掲示板の入力フォームに文字...
-
jqueryを使ったスムーススクロ...
-
確認ダイアログを次からは表示...
-
javascriptで複数の表示・非表...
-
javascriptのエラーで質問です。
-
特定の条件のHTML要素を一括で...
-
macかwinか判別しスタイルシー...
-
【JavaScript】検索がヒットし...
-
jQueryのSlickで矢印アイコンが...
-
javascriptでの(-)ハイフンの処...
-
クリックすると、色が変わるよ...
-
時間帯によってclass名を変更し...
-
フォームで「パスワード(確認...
-
3重のクォーテーション
-
SITEINFOの書き方について
-
【至急!!】Jqueryを使った下記...
おすすめ情報