![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?08b1c8b)
No.4ベストアンサー
- 回答日時:
#3>にはテキストエリアとボタンがあってそこにスクリプトを貼りつけてボタンを押せば作成中のページにそのスクリプトが挿入できれば便利だと単純に思っただけです。
テキストエリアにスクリプトを書いて実行するというサンプルを作ってみました。
ただ、言えるのは、document.write など読込時に実行されることで、HTMLを構成するような命令は、ページが表示されてからでは実行するのが遅すぎるために、別に書き換える必要があるし、HTMLの構成に依存するようなスクリプトはそれなりに書き換えないといけないです。
(つまり何でもかんでも、持ってきたスクリプトが直ちに実行できるわけではないということ)
サンプルは、テキストエリアに入力されたスクリプトを実行するもので、サンプルでテキストエリアに入力されているスクリプトは、テキストエリアとボタンを作成し、テキストエリアに入力されている文字をURLエンコードするものです。
IE6,Firefox1.5 で動作確認してあります。
----------------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>動的スクリプトの実行</title>
<script type="text/javascript"><!--
function exec(){
eval(document.getElementById('source').value);
}
//-->
</script>
</head>
<body>
実行したいスクリプト<br>
<textarea id="source" cols="80" rows="25">
alert("test");//←元々試したかったヤツ?
var ta = document.createElement('textarea');
ta.setAttribute("cols",72);
ta.setAttribute("rows",4);
ta.id="temp200607081300";
document.body.appendChild(ta);
ta.value="文字列をURL ENCODE変換";
var bt = document.createElement('button');
bt.setAttribute("type","button");
var btMsg = document.createTextNode('変換');
bt.appendChild(btMsg);
bt.onclick=function(){
conv("temp200607081300");
}
document.body.appendChild(bt);
function conv(id){
var el=document.getElementById(id);
el.value = encodeURI(el.value);
}
</textarea><br>
<button type="button" onclick="exec()">実行</button>
<hr>
</body>
</html>
スクリプトまで作って頂きありがとうございます。
おかげさまで目的は達成できそうです。
結局SCRIPT内にjavascriptはそのまま挿入することはできないってことですね。
No.3
- 回答日時:
#2>SCRIPTの変わりに別のタグにすると同じスクリプトでも正常に動くんです。
同じようなテストをしてみましたが、IEの場合、動的にスクリプトエレメント(<script></script>)にテキストの追加は、できないようです。(Firefox1.5 ではできました)
でも、#2でも書いたようにeval を使って新しい関数とか(変数も)作成できるので、このようなこと(documentに動的にscriptエレメントを作成すること)に意味があるのかどうかは疑問です。
単なる知的好奇心からそういうテストをされているんでしょうか?
それとも、何か目的があるのでしょうか?
この回答への補足
たびたびありがとうございます。
ホームページを作っていてJavaScriptのサンプルを利用させてもらうことがあるんですが、実際に使って見るときに作成中のページをフレームで表示しておいて別のフレームにはテキストエリアとボタンがあってそこにスクリプトを貼りつけてボタンを押せば作成中のページにそのスクリプトが挿入できれば便利だと単純に思っただけです。
もともとはそんな形で画像などの素材を挿入して試していたのですが、JavaScriptでも使えるのかもと思ったのが切欠でハマってしまったのですが、今はできないことが納得できないと言うのが正直なところです。
No.2
- 回答日時:
動的に関数を作成したいとかそういうことなら、
文字列として、関数を構成して
eval すればいいです。
(script タグを追加する必要はない)
この回答への補足
SCRIPT = document.getElementsByTagName('script')[0];
var javascript = "alert(\'alertを挿入\')\;";
var JS = document.createTextNode(javascript);
SCRIPT.appendChild(JS);
単純にこんなことができるのかと思っていたのですがcreateTextNodeでエラーが出てしまうんです。
createCommentかなと思ってやってみたんですがこれも使えないみたいなんです。(IEのみ確認)
そこで行き詰まってしまって質問させて頂きました。
何か間違っていますか?
単純な間違いのような気がするんですが、実際のものではSCRIPTも挿入するようになっていてSCRIPTの変わりに別のタグにすると同じスクリプトでも正常に動くんです。
そこで全く原因がわからなくなってしまいました。
なにかお気づきの点がありましたらまたお願いできますでしょうか。
よろしくお願いします。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_04.png?08b1c8b)
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript リンクのサイトのHTMLとJavaScriptでテトリスを動かすプログラムに、1列消えたらscore 1 2023/01/30 11:32
- PHP ワードプレスプラグイン MW WP formについて(aria-labelを追加したい) 1 2023/06/05 17:11
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- JavaScript ソースコードは下の共有コードサイト「張り紙」にあります。 入力フォームの javascript で 1 2022/05/11 11:01
- Google Maps スマホ グーグルフォト 1 2023/06/28 17:26
- オンラインゲーム Macの「探す」アプリに持ち物が追加できない 3 2023/08/02 14:45
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- Excel(エクセル) Excel グラフの軸に「表示単位の変更」の要領でテキストを追加したい 1 2022/06/08 16:27
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jsで質問です。 formをsubmitし...
-
初心者です。gulpでコンパイル...
-
セレクトボックスで配列を呼び...
-
スマホ上で、左右スワイプで次...
-
jqueryのselect2で検索欄の文字...
-
二次元配列を使って順位をだす...
-
イラストレーター、縦中横のシ...
-
【GAS】WEBアプリでハイパーリ...
-
ローディングアニメーションの...
-
二次元配列の中の各行の要素を...
-
階層別の組織図の自動作成について
-
2段階プルダウンで1段階目の選...
-
2025年相性がいい人のサイトの...
-
CookieをWebStoeageに変える
-
Adobe acrobat proでフォームを...
-
Outlookのアカウントがあるとメ...
-
<tr>指定した表の行要素をボ...
-
食材の期限を管理するためにGAS...
-
前回の質問の続き function mov...
-
ビデオのJSについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
動的生成したscriptタグが実行...
-
ページ内文字列の置換について
-
document.getElementById
-
ページ更新後も保持される変数...
-
外部javascriptファイルをjavas...
-
location.hrefが動かない・・・
-
document.writeの文字列が実行...
-
¥マークの検索について
-
UAによるリダイレクト
-
1から100までの平方根を表示す...
-
スクロールメニューが宣言を入...
-
JavaScriptでJavaScriptを追加...
-
外部jsからdocument.writeする...
-
history.back スクリプトオフ...
-
16進n桁の文字列変換の方法は?
-
javascriptで変数を組み込みたい
-
CGIフォーム一定時間過ぎる...
-
selectタグで日付を生成
-
書いたクッキーを読み出してメ...
-
ランダム音声と正解・不正解の表示
おすすめ情報