🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

Q&A

解決済

2回答

2827閲覧

jsでchromeを操作したい

退会済みユーザー

退会済みユーザー

総合スコア0

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

0グッド

1クリップ

投稿2019/10/29 07:10

編集2019/10/30 02:53

IEが将来使われなくなることから、現在、IEベース(ActiveX)で動かしているjsファイルを
修正しようと思い質問いたしました。

■ 実現したいこと
JSファイルのみで、以下のことを行いたいです。
1.指定URL(OAuth認証URL)をjsファイルの引数に持たせてchromeで開く
2.chromeで開かれているURL(開かれているタブの数だけ)を全て取得
3.chromeを閉じる

色々、Googleで
「javascriptでchromeを動かす」「javascript chrome 動かす」
「javascript chrome 操作」「javascript chrome 開いてからURLを取得」
などで調べてみましたが見つからなかった為、皆さんの知恵をお貸しください。
また、出来れば極力、プラグインなどは使わずに作りたいです。

【環境】
検証用(ローカル):windows10 64bit
本番用(クラウドサーバ):windows server 2016

jsファイル実行場所:「動かしている4Dサーバフォルダ」/「リソースフォルダ」/GetURL.js
実行詳細:4D(フランス社製)から「LAUNCH EXTERNAL PROCESS」コマンドを使い、
cscript //nologo+実行ファイル(絶対パス)+OAuth認証URL(jsファイルの引数)をコマンド引数に持たせて実行

IEベース(ActiveX)で実行していた際のjsファイルを記載します。

js

1test(); 2function test() { 3var READYSTATE_UNINITIALIZED=0; 4var READYSTATE_LOADING=1; 5var READYSTATE_LOADED=2; 6var READYSTATE_INTERACTIVE=3; 7var READYSTATE_COMPLETE=4; 8var ieAPP = new ActiveXObject("InternetExplorer.Application"); 9ieAPP.visible = true; 10var url = WScript.Arguments(0); 11ieAPP.Navigate(" https://google.com");var startMsec = new Date();while (new Date() - startMsec < 5000);ieAPP.Navigate(url); 12while (ieAPP.Busy || ieAPP.ReadyState!=4){WScript.Sleep(500)}; 13var sh = WScript.CreateObject("Shell.Application"); 14var array = []; 15var pattern = 'ドメイン/'; 16for (var i = 0; i < sh.Windows().Count; i++) { 17var a = ""; 18try {a = sh.Windows(i).document.URL;} 19catch(e) {} 20if(a) {array.push(a);} 21} 22var fileName = ""; 23var filesh = new ActiveXObject("WScript.Shell"); 24var desktopPath = filesh.SpecialFolders("Desktop"); 25var absoluteFilePath = ""; 26var create = true; 27var iomode = 1; 28var format = -2; 29var fs = new ActiveXObject("Scripting.FileSystemObject"); 30for (var i = 0; i < array.length; i++) { 31if(array[i].indexOf(pattern) > -1){ 32var start = 0; 33var end = 0; 34var code = ""; 35start = array[i].indexOf("code=") + 5; 36end = array[i].indexOf("&",start) - 1; 37if (end > 0) { 38end = end - start + 1; 39code = array[i].substr(start,end); 40}else { 41code = "notfind" 42} 43fileName = "code_" + code; 44absoluteFilePath = desktopPath + "\" + fileName; 45var file = fs.OpenTextFile(absoluteFilePath,iomode,create,format); 46}else { 47fileName = "Error" 48absoluteFilePath = desktopPath + "\" + fileName; 49var file = fs.OpenTextFile(absoluteFilePath,iomode,create,format); 50} 51file.Close(); 52} 53if (array.length==0){ 54fileName="ReferenceError"; 55absoluteFilePath = desktopPath + "\" + fileName; 56var file=fs.OpenTextFile(absoluteFilePath,iomode,create,format); 57file.Close(); 58} 59ieAPP.Quit(); 60} 61

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/10/29 07:12

そのJavaScriptプログラムはどこでどのように起動するのでしょうか。
退会済みユーザー

退会済みユーザー

2019/10/29 07:42

申し訳ございません。 追記しました。
m.ts10806

2019/10/29 08:03

んーと。「chromeで開かれているURL」についても不明瞭ですね。どこからどう開くのかとか… 追記された「実行詳細」の内容からすると私の知見が及ぶ範囲ではないのですが、要件不明瞭な部分が多いのは確かと思いますので、考慮いただければと思います。 seleniumのような自動実行とはまた違いそうですしね。それならJavaScriptである必要がないですし。JavaScript側からブラウザを操作できるわけではないので(chrome拡張とかならまだ可能でしょうけど)
退会済みユーザー

退会済みユーザー

2019/10/30 02:53 編集

ご丁寧にありがとうございます。 文章を一度整理するため、申し訳ありませんがしばらくお待ちください。 大変お待たせいたしました。 文章を整理しました
guest

回答2

0

ベストアンサー

puppeteerというライブラリでChromeの自動化ができるそうです。
https://github.com/GoogleChrome/puppeteer

投稿2019/10/29 14:53

zma3

総合スコア39

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/10/30 02:55

回答ありがとうございます。 ご教示いただいた内容でも試してみたいと思います。
guest

0

IEベースで動かしているjsファイル

それってactiveXコントロールの話ですか?
IEと同等の処理は特別なプラグインでも利用しない限り難しいと思いますよ

投稿2019/10/29 08:00

yambejp

総合スコア116694

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/10/29 08:21

回答ありがとうございます。 >それってactiveXコントロールの話ですか? はい。そうです。 IEの際は、activeXを使って「FileSystemObject」なども使って処理していました。 >IEと同等の処理は特別なプラグインでも利用しない限り難しいと思いますよ バニラの状態だと難しいのですね。 何かしら入れてみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問