VBScriptによるHTML生成及び背景画像

このQ&Aのポイント
  • VBScriptを使用してHTMLページを生成する方法について教えてください。
  • VBScriptで背景に画像を設定する方法について教えてください。
  • VBScriptで生成したHTMLの背景画像が反映されない問題についてどう解決すれば良いでしょうか。
回答を見る
  • ベストアンサー

VBScriptによるHTML生成及び背景画像

お世話になります。 当方あと一歩のところでつまづいています。 下記の点についてご存知の方おられましたらぜひ教えてください。 VBScriptにてHTMLページを生成しています。 その際に背景に画像を設定したいのですが、 どのページを探しても出てきません。 ちなみにInternetExplorerをCreateObjectしたオブジェクト(ie)で ie.style.backgroundImageやie.backgroundでxxx.jpgを設定しても 以下のようなエラーで設定できません。 エラー: オブジェクトでサポートされていないプロパティまたはメソッドです。 ソースの一部です。 ie.Width = 800 ie.Height = 500 ie.Top = 200 ie.Left = 300 ie.ToolBar = false ie.StatusBar = false ie.Resizable = true ie.background = "DSC_0010.jpg" ←例えばこのような ie.Document.Body.InnerHTML = html ie.Document.Title = "Atlas Batch Schedular" objWSH.AppActivate("about:blank") ここさえできれば完成です。 HTMLを文字列で定義したものをinnerHtmlで生成していますが、 こちらでbackgroundなどを設定しても生成された際に全く反映されませんので、 上記の方法しかないと思いました。 どうぞ宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.1

ie.Document.Body.Background = "file:///D:/hoge/DSC_0010.jpg" みたいな感じでいかがでしょうか?

axelchk
質問者

お礼

回答ありがとうございます。 できました! まさか画像のパスに原因があったとは。。。 失念しておりました。 本当に助かりました。 ありがとうございましたm(_ _)m

関連するQ&A

  • VBScriptでHTMLを生成しJPG画像を表示させるには?

    いつもありがとうございます。 早速質問ですが,職場での周知用に,vbsでHTMLを生成し, ファイルサーバにある画像(JPG)を取得して,HTMLに埋め込もうとしています。 具体的には以下のとおり表示させようとしていて,XP+IE6だとうまくいくのですが,Vista+IE7だと画像が表示されません。 (生成されたHTMLファイル自体は,画像が表示されます。  VBSで一連の流れにした場合のみ表示できないようです。) つたない文章で申し訳ございませんが,Vista+IE7で表示させるため,お知恵をいただけませんでしょうか。 画像を他部署で作成し,頻繁に更新するため,VBS自体はクライアントに置きっぱなしで,ファイルサーバの画像ファイルを差替えして運用したいと思っています。 --- sub Open_HTML(strImageFile) Dim objIE Dim objShell '初期設定(ウィンドウサイズ、表示位置に使用) WScript.Echo "html作成" & strImageFile 'IEオブジェクトを作成 Set objIE = CreateObject("InternetExplorer.Application") 'IEの画面を表示 objIE.Visible = True 'カラのページを表示 '(これを行わないと以降のdocument.writeなどがエラーになるため) objIE.Navigate "about:blank" 'HTMLを出力します objIE.Document.Write "<html>" & vbcrlf objIE.Document.Write "<head>" & vbcrlf objIE.Document.Write "<title>HTML画像挿入テスト</title>" & vbcrlf objIE.Document.Write "</head>" & vbcrlf objIE.Document.Write "<body>" & vbcrlf objIE.Document.Write "<table border=4 width=""100%"" height=""100%"">" & vbcrlf objIE.Document.Write "<tr>" & vbcrlf objIE.Document.Write "<td align=""center"" valign=""middle"">" & vbcrlf objIE.Document.Write "<IMG SRC=" & strImageFile & "> " & vbcrlf objIE.Document.Write "</td>" & vbcrlf objIE.Document.Write "</tr>" & vbcrlf objIE.Document.Write "</table>" & vbcrlf objIE.Document.Write "</body>" & vbcrlf objIE.Document.Write "</html>" & vbcrlf 'IEをアクティブに Set objShell = WScript.CreateObject("WScript.Shell") objShell.AppActivate("HTML画像挿入テスト - Microsoft Internet Explorer") objShell.AppActivate("HTML画像挿入テスト - Windows Internet Explorer") objIE.FullScreen = True '30秒表示 WScript.Sleep(30000) '画面のクリア objIE.Navigate "about:blank" 'IEの終了 objIE.Quit 'オブジェクトの破棄 Set objIE = Nothing Set objShell = Nothing end sub

  • テーブル背景を毎日入れ替える方法

    以前ここで同様の質問させていただいた者です。 回答いただいた例を参考にして、自分なりに設定を直してみたのですが動かない状態です… もう一度ご教授をお願いします。 テーブルの背景画像を日によって変更できるように、と思っています。 tableタグ内は、以下のようにしました。 <table id="BACKIMG" ~中略~ style="BORDER: #7B7B7B 1px solid; background-image:url('image/tableback.jpg');"> またJavaScriptは外部ファイルにして 【Change.js】の内容↓ function fncChange() { var a; var date = new Date(); var d = date.getDate(); a = d % 7; if (a==0){ document.getElementById("BACKIMG").style.backgroundImage="url(images/images0/top.jpg)"; }else if (a=1){ document.getElementById("BACKIMG").style.backgroundImage="url(images/images1/top.jpg)"; }else if (a=2){ document.getElementById("BACKIMG").style.backgroundImage="url(images/images2/top.jpg)"; }else if (a=3){ document.getElementById("BACKIMG").style.backgroundImage="url(images/images3/top.jpg)"; }else if (a=4){ document.getElementById("BACKIMG").style.backgroundImage="url(images/images4/top.jpg)"; }else if (a=5){ document.getElementById("BACKIMG").style.backgroundImage="url(images/images5/top.jpg)"; }else if (a=6){ document.getElementById("BACKIMG").style.backgroundImage="url(images/images6/top.jpg)"; } } 使用する画像はフォルダで分けるつもりです。 HTMLにはHEADタグの間に <SCRIPT language="javascript" src="Change.js"> <!--// fncChange(); //--> </SCRIPT> を記述しています。 これで不足してる部分がありますでしょうか? 解決策をよろしくお願いします。

  • innerHTMLに追記した場合のjs動作

    WSHなどでIEオブジェクトを用いて、 documnet.innerHTML += などでHTMLを動的に生成した場合、 <script>内に記述したものが動作しません。 これはどの様にするべきでしょうか? ※別途HTMLを作成せずに動的なhtml生成での話になります。

  • vbscript内にvbscriptを記述

    option explicit on error resume next dim objie, objwshell set objwshell = createobject("wscript.shell") objwshell.appactivate "microsoft internet explorer" set objie = createobject("internetexplorer.application") objie.width = 380 objie.height = 100 objie.navigate "about:blank" objie.document.write "<html><head><title>終了処理</title><script language='vbscript'>" & vbcrlf objie.document.write "option explicit" & vbcrlf objie.document.write "function osu()" & vbcrlf objie.document.write " dim aaa" & vbcrlf objie.document.write " Set aaa = CreateObject('Wscript.Shell')" & vbcrlf objie.document.write " aaa.run 'wscript ログオフ.vbs', 1, true" & vbcrlf objie.document.write " set aaa = nothing" & vbcrlf objie.document.write "end function" & vbcrlf objie.document.write "</script></head>" & vbcrlf objie.document.write "<body bgcolor='#CCCCCC' style='overflow:hidden'><form name='form1'>" & vbcrlf objie.document.write "<input type='button' name='button1' value='ログオフ' onClick='osu()'>" & vbcrlf objie.document.write "</form></body></html>" & vbcrlf objie.visible = true objie.toolbar = false objie.statusbar = false objie.resizable = false set objwshell = nothing set objie = nothing 上記のプログラムを[.vbs]という拡張子で保存。 これは、vbsファイルをクリックするとIEの画面が出て、ログオフのボタンをクリックするとログオフするというものなのですが、うまくいきません。 vbsの中にまたvbsを記述しているからでしょうか?

  • IE6.0 Strictでの背景固定について

    スタイルシートについての質問です。 HTMLをドキュメントタイプStrictに設定した場合、IE6.0では background-attachment : fixed; が無効になってしまいました。(Mozilla系のブラウザでは正常に反映されています) これはIEのバグなのでしょうか?

  • javasciptで時間で背景変更について

    javasciptで時間帯によって背景画像を変更したいと思い、下記を外部ファイルで読み込んでいるのですが、safariでは表示でき、IEやFIREFOXでは表示されないです。 どうすればよいでしょうか。 function geth(t){ if (t<=2) document.write("<BODY BACKGROUND='image.jpg'>"); else { if (t<=5) document.write("<BODY BACKGROUND='image.png'>"); else { if (t<=8) document.write("<BODY BACKGROUND='image.jpg'>"); else { if (t<=11) document.write("<BODY BACKGROUND='image.png'>"); else { if (t<=14) document.write("<BODY BACKGROUND='image.jpg'>"); else { if (t<=17) document.write("<BODY BACKGROUND='image.png'>"); else { if (t<=20) document.write("<BODY BACKGROUND='image.jpg'>"); else { if (t<=23) document.write("<BODY BACKGROUND='image.png'>"); }}}}}}} }

  • HTMLソースをコピーするブックマークレット

    よろしくお願いします。 タイトルのとおり、HTMLソースをコピーするブックマークレットを作りたいのですが、 IEからメモ帳でソースを開いた時と全く同じ内容をクリップボードにコピーしたいのですが、 以下のスクリプトではそのように動作しませんで、困っています。 javascript:alert(document.parentWindow.clipboardData.setData("text", document.body.innerHTML)?'コピー完了':'false'); 上記ので駄目だったので、以下のスクリプトも試しましたが、駄目でした。 javascript:alert(document.parentWindow.clipboardData.setData("text", document.getElementsByTagName('html')[0].innerHTML)?'コピー完了':'false'); 上記スクリプトでは<HEAD>~</BODY>までの間しかコピーされず(その前後の<script >関連などがコピーされません)、また、改行やインデントなども消去されてしまっています。 コピーしたデータをPHPのプログラムでデータとして処理しているため、IEのソースを表示でメモ帳で開いたデータと全く同じ様式にしてコピーしたいのですが…。 詳しい方がおられましたら、どうかよろしくお願い致します。

  • WebBrowserでHtmlを取得

    WebBrowserでHtmlを取得する方法をおしえてください フォーム上に、WebBrowser1、TextBox1、Button1を配置しています。 TextBox1にHtmlを表示し、Button1は、WebBrowser1に表示している WEBページを更新します。 やりたい事  (1)フォームを開いた時に、URLで指定したWEBページを表示させ   TextBox1にHtmlを表示させる。  (2)Button1をクリックした時、表示しているWEBページを更新する。   更新後のHtmlをTextBox1に表示させる。  (3)TextBox1の表示が完了したらHtmlを処理する。(未着手) 現在、(1)は動作するのですが、(2)が動作しません(TextBox1のHtmlが更新されない) Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load WebBrowser1.Navigate(オッズURL):webcompflag = False Do While (webcompflag = False) System.Windows.Forms.Application.DoEvents() System.Threading.Thread.Sleep(10) Loop TextBox1.Text = WebBrowser1.Document.Body.InnerHtml End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click TextBox1.Text = "" If Not WebBrowser1.Url.Equals("about:blank") Then WebBrowser1.Refresh() : webcompflag = False Do While (webcompflag = False) System.Windows.Forms.Application.DoEvents() System.Threading.Thread.Sleep(10) Loop TextBox1.Text = WebBrowser1.Document.Body.InnerHtml End Sub 何がいけないのか分かりません よろしくお願いします。

  • HPで時間ごとに背景を変えたい

    HPの設定で、時間ごとに背景を変えたいと思ってます。 そこで検索してみたところこんなソース↓を発見したのですが、一日に三回変えられるものでした。これを四回にしたいのですが、上手く書き換えられません。どこを直せばよいでしょうか? <script language="JavaScript"> <!--// bg1=0; bg2=12; bg3=20; jikoku=new Date(); jikan=jikoku.getHours(); if(jikan>=bg1&&jikan<bg2) document.write('<body background="img/1.jpg">'); else if(jikan>=bg2&&jikan<bg3) document.write('<body background="img/2.jpg">'); else document.write('<body background="img/3.jpg">'); //--> </script>

  • 背景色の変更を簡単に

    <script type="text/javascript"> <!-- function change(bg_color){ document.bgColor = bg_color; } //--> </script> ************ <table> <tr> <td onclick="change('#FFFFEE')" style="background-color: #FFFFEE">クリーム</td> <td onclick="change('#EEFFFF')" style="background-color: #EEFFFF">水色</td> <td onclick="change('#FFEEFF')" style="background-color: #FFEEFF">桃色</td> <td>~~</td> </tr> </table> ************ javascript初心者です。テストでなんとか動くようになりました・・・ これで間違いないでしょうか? これで正しければ onclick="change('#~~~')"の記述を全カ所にこれから入れようと思うのですが、 onclick="change('#~~~')"の部分を記述しないで、 style="background-color: #~~~">のstyleの色名#~~~を引っ張り込む方法とか、統一する方法とか簡素化する方法はありますか? 例えば<td style="background-color: #FFFFEE">クリーム</td> HTMLはこのままでできないでしょうか? ここで教えて頂いた以下の画像の場合は出来たので同じように出来れば嬉しいのですが・・・ <script type="text/javascript"> function change(evt) { e = evt.target || evt.srcElement; if (e.nodeName=='IMG') document.body.style.backgroundImage = 'url(' + e.src +')'; } </script> <table onclick="change(event)"> <tr> <td><img src="a001.jpg"></td> <td><img src="a002.jpg"></td> <td><img src="a003.jpg"></td> </tr> </table> *********************** なかなか応用ができなくて困っています。 なんとか簡単にできれば嬉しいです<(_ _)>

専門家に質問してみよう