• 締切済み

プログラムからブラウザにJSを実行させる方法

cやc++などタスクバーに表示されるプログラムから、起動中のブラウザにjavascriptコードを実行させる方法があれば教えてください それとブラウザ単体で動的にjavascriptを実行するには、 ・アドレスバーに打ち込む ・コンソール画面に打ち込む(IE7とかの場合F12押下して出てくるやつ 以外に方法があるのでしょうか? 回答よろしくお願いいたします。

みんなの回答

  • luka3
  • ベストアンサー率72% (460/632)
回答No.1

Cではやったことありませんが、WSHでのやり方を例示します。 -- ここから var Shell = WScript.CreateObject("Shell.Application"); var WindowsShell = Shell.Windows(); // 現在開いているIEを調べる for (var i=0; i<WindowsShell.Count; i++) {  if (WindowsShell.item(i).FullName.match(/iexplore.exe/i)   && WindowsShell.item(i).document.URL == "http://www.yahoo.co.jp/") {   // IEに動的にJSを送り込む   var d = WindowsShell.item(i).document;   var s = d.createElement('script');   s.type = "text/javascript";   s.text = "document.sf1.p.value = 'test from JS';";   d.body.appendChild(s);  } } -- ここまで ※全角空白は半角かタブに置換してください。 上記を test.js などとして保存し、IEでyahooのトップページを開いてから test.js をダブルクリックしてください。 検索文字列入力欄に test from JS と出ましたでしょうか。 C++でのブラウザウインドウの操作はこちらを参考にしてください。 ・VC++ WebBrowser COMメモ(Hishidama's VC++ WebBrowser-control Memo) http://www.ne.jp/asahi/hishidama/home/tech/vcpp/webbrowser.html 正式名称は忘れましたがキモは「SHDOCVW.DLL」ですので、 これを頼りに検索すればいろいろなサンプルが見つかると思います。 なおこの方法はIEもしくはIEコンポーネントを利用しているもの限定になります。 例えばDonutRAPTなどでも動きますが、….FullName.match(/donut.exe/i) といった修正が必要です。 ちなみに、少々強引なことを言うと、C/C++からこのWSHを呼び出してしまえば 「WindowsShell.item(i).document.sf1.p.value = 'test from JS'」とかやることも可能です。 ≫それとブラウザ単体で動的にjavascriptを実行するには こちらはちょっと漠然としててどうしたいのかよくわかりませんが、 「動的 javascript」で検索すれば、上記と同じサンプルが出てきます。

すると、全ての回答が全文表示されます。

関連するQ&A