Page 22 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼選択中のURLを待ちながら開く(js) YAma(作成sim氏) 02/8/2(金) 10:14 ─────────────────────────────────────── ■題名 : 選択中のURLを待ちながら開く(js) ■名前 : YAma(作成sim氏) ■日付 : 02/8/2(金) 10:14 -------------------------------------------------------------------------
//選択中のURLを待ちながら開く //選択されたテキストに含まれるURLを開きます(先頭のhを省いたものにも対応)。 //URLが複数ある場合は、それぞれのURLを一つずつ開き終わるまで待って //開いていきます。広告ポップアップなどが開く問題には対処して //いませんので、連続で開いてしまう場合もあります。 //書いた人:sim //読み込み完了をチェックする際のチェック間隔は //次のwait_timeを変更することでミリ秒単位で変えられます。 var wait_time = 1000; var bugweb = new ActiveXObject("BugWeb.BugBrowserAPI"); var docObj; //ドキュメントビューオブジェクト var selText; //選択範囲の文字列 var re = new RegExp("(h?ttp|h?ttps)://[-\\w\\.~\\*'\\(\\);/\\?:@&=\\+\\$,%#]+", "g"); //URI抜き出し用正規表現:正規表現エスケープ用の\をさらにエスケープする。 var regexp_result; var uris = new Array(); //抜き出したURIを含む配列 if (bugweb == null ){ WScript.Echo("BugBrowserオブジェクトが取得できません。"); WScript.Quit(); } //ドキュメントビューオブジェクト取得 docObj = bugweb.CreateDocumentViewObject(bugweb.ActiveView); if ((docObj == null) || (docObj.Busy == true)) { docObj = null; bugweb.ShowMessage("ドキュメントビューオブジェクトエラーです。"); bugweb = null; WScript.Quit(); } //ホントはここにフレーム選択を入れたい。選択範囲はフレームの数に限らず //ドキュメント中に1個だけぽいので、それを使えばできるかなーと。 //選択範囲がテキストでなければそのまま終了 if ((docObj.document.selection == null) || (docObj.document.selection.type != "Text")) { docObj = null; bugweb = null; WScript.Quit(); } //正規表現でURLを抜き出して配列に追加 selText = docObj.document.selection.createRange().text; docObj = null; while ((regexp_result = re.exec(selText)) != null) { //先頭のhを補完 if (regexp_result[0].substr(0, 3) == "ttp") regexp_result[0] = "h" + regexp_result[0]; uris.push(regexp_result[0].toString()); } //読み込み完了を待ちながら開く var i = 0; for (i in uris) { bugweb.NavigateNew(uris[i]); docObj = bugweb.CreateDocumentViewObject(bugweb.DocumentView(bugweb.DocumentCount - 1)); try { while (docObj.NavigateStatus != 0) { WScript.Sleep(wait_time); } } catch (e) { bugweb.ShowMessage("読み込み完了待機中のエラーです。\n" + e.toString()); docObj = null; break; } docObj = null; } bugweb = null; |