こんにちは、いつもお世話になっています。
以前親ウィンドウのHTMLの内容をテキストエリアに表示する
と言う内容に付いて質問をさせて頂きました。
今作成しているのは子ウィンドウから親ウィンドウの
任意の場所の画像や背景色、テキストの内容をテキストで変更するというものです。
その後作業をすすめてまいりましたがふと思いました。
すべて
window.opener.document.getElementById
が共通で
その後にstyle.backgroundColorやimage.src、innerHTMLが続くだけです。
そこで今は色変更、画像変更、テキスト変更と関数に分けていますが
ひとつの関数でそれをできないかと思ったのです。
たとえばなにか引数としてimage.srcを渡すと
window.opener.document.getElementById(1).A=○○;
のAにimage.srcが自動的にはいって画像変更ができるようになる
と言う風なことはできないのでしょうか?
もし可能だとしたら代入する値が画像であるか、色名であるかと言った判定も
やはりしていくべきでしょうか?
どなたか宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
色変更、画像変更は共通でできます。
setAttribute(AttName,Attval)
AttName,Attvalを変更するようにしたら如何ですか?
ただしstyle属性の場合IE6は、style.cssTextを使います。
Firefox,Opera8では普通にsetAttribute('style','color:red')のようにすると良いです。
http://www3.tokai.or.jp/janboon/samp/javascript/ …
例えば、
ブラウザ判別が入って
AttName=document.body.getElementsByTagName('input')[0].value
Attval=document.body.getElementsByTagName('input')[1].value
if(BR == IE&&AttName == 'style'){
window.opener.document.getElementById(1).style.cssText = Attval
}else{
window.opener.document.getElementById(1).setAttribute(AttName,Attval)
}
こんな感じになるんでしょうかね。
イベント属性の場合もIE6はsetAttribute('onclick',function(){alert('a')})などのように引用符を使わずに書きます。
Firefox,Opera8では普通にsetAttribute('onclick',"alert('a')")のようにすると良いようです。
テキストの変更は属性ではないので共通ではできないと思います。
ただデータの入力方法が不明なのでなんとも言えませんけどね。
テキスト専用のtextareaがあって属性専用のinputタグがあるならtextareaが空ならsetAttributeをやってinputが空ならchildNodesを検索してそのnodeValueがnullでなければそれのnodeValueを変更すれば1つの関数でできるんじゃないでしょうか。
No.1
- 回答日時:
たとえばこんなかんじ
<script language=javascript>
function test(v){
switch(v){
case 1:
document.getElementById('test').innerHTML="<image src='images/am.gif'>"
break;
case 2:
document.getElementById('test').innerHTML="テストテストテスト"
break;
case 3:
document.getElementById('test').innerHTML="テストテストテスト"
document.getElementById('test').style.backgroundColor="#ff0000";
break;
}
}
</script>
<form>
<input type=button value="画像" onClick="test(1)">
<input type=button value="文字を書く" onClick="test(2)">
<input type=button value="文字の背景赤" onClick="test(3)">
<div id="test"></div>
<form>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(OS) Windowsで大量の画像サイズを半自動で変更する方法 6 2023/02/17 08:45
- その他(ソフトウェア) Figma 1 2023/06/23 14:22
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
- ホームページ作成・プログラミング さくらサーバーに置いているホームページを改修したいです 2 2022/11/06 17:13
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- Windows 8 動画の再生とタイトルの変更方法を教えてください。 3 2022/08/01 14:51
- Excel(エクセル) こんなことできますか?例えば、sheetに貼り付けた図形のタイトルを、セルA1の文字で表示する。 5 2022/04/22 15:25
- HTML・CSS CSSでサイトの背景に画像を組み込みたいのですが反映されません 2 2022/11/22 16:21
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
- Visual Basic(VBA) PowerPoint VBA で画像の鮮明度を変更する方法がわかりません 2 2023/03/24 13:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
formのfileの値をhiddenでも持...
-
JavascriptでDOM-based XSSの発...
-
クリックさせたいが、click()が...
-
VB.NETで<Input>タグ、<text...
-
javaScriptの変数をJavaの変数...
-
追加ボタンを押した際に ok ボ...
-
親ウィンドウのフォームの値を変更
-
vbscriptでIE自動入力(コンボ...
-
onclickが動作しない
-
オンクリックで現在時刻の取得→...
-
ボタンかリンクをクリックする...
-
JavaScriptのfileオブジェクト...
-
innerHTML内では改行は禁止?
-
JSやVBSで、ボタンを押す...
-
マウスをブラウザの外に出した...
-
正規表現で複数マッチ条件で悩...
-
return trueとreturn falseの用...
-
【jsp/Java】チェックボックス...
-
リストボックス内の重複したも...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
JavascriptでDOM-based XSSの発...
-
onclickが動作しない
-
クリックさせたいが、click()が...
-
追加ボタンを押した際に ok ボ...
-
innerHTML内では改行は禁止?
-
ボタンかリンクをクリックする...
-
formのfileの値をhiddenでも持...
-
javaScriptの変数をJavaの変数...
-
JavaScriptのfileオブジェクト...
-
VB.NETで<Input>タグ、<text...
-
受け取ったパラメータが文字化け
-
JQueryでfunctionに引数としてI...
-
javascriptで作成されたテーブ...
-
jQueryで設定したイベントハン...
-
開いた子ウィンドウにあるボタ...
-
コードレビューをお願いします。
-
ボタンをクリックするとテキス...
-
BackSpaceしたい(QNo.2734284の...
-
URL 判定
おすすめ情報