/* [動作] del.icio.usに登録、ログイン済みであるという前提で。 マウスジェスチャに登録して使うことを想定。 -アクティブなタブのURLとtitleをdel.icio.usに送ります。 -タグ入力補完を動作させるため、JavaScriptをオンに変更します。 -選択されていたテキストを概要欄に自動で貼り付けます。 --なんか見づらいと思ったので、input をtextareaに置き換えてリサイズします。 --概要は長すぎるとdel.icio.usのほうで勝手に尻切られるみたいです。 [設定] 初回起動時にアカウント名を尋ねてくると思います。 または、Ctrlキーを押しながら起動でアカウント名を再設定できます。 ログイン済みであるという前提なのでパスワードは保存しません。 アカウント名はscript.iniの[sl_delicious_clip]以下に暗号化されないで保存されてます。 [注意] 余計なことをしているので、仕様が変わったら動かなくなる可能性あります。 [改訂履歴] 2005-01-29 公開 [著作権] リンクも転載もコピペも改造も再配布も勝手にどうぞ。 http://la.ma.la/blog */ // [設定項目] /* このスクリプトの名前、script.iniのセクション名 */ var THIS_SCRIPT_NAME = 'sl_delicious_clip'; /* 登録用のURL、2005-01-29時点。*/ var BASE_URL = 'http://del.icio.us/new/'; /* ロード完了までの待ち時間のタイムアウト設定、ミリ秒 */ var timeout = 5000; // [設定以上] /* 初期化 */ var BROWSER = new ActiveXObject("Sleipnir.API"); var TAB_ID = BROWSER.GetDocumentID(BROWSER.ActiveIndex); var TAB_DOC = BROWSER.GetDocumentObject(TAB_ID); // アカウント名を読み込み。 var your_name = BROWSER.GetProfileString('sl_delicious_clip', 'your_name', ''); if (!your_name || BROWSER.CtrlDown){ BROWSER.MessageBox("名前を設定して下さい"); your_name = BROWSER.InputBox('あなたのアカウント名', your_name); BROWSER.WriteProfileString('sl_delicious_clip', 'your_name', your_name); } if (TAB_DOC == null) { BROWSER.MessageBox("documentオブジェクトを作成できません"); s_end(); } var flag = getSecurity(); flag.JavaScript = 1; setSecurity(flag); var itemurl = TAB_DOC.location.href; var itemdesc = TAB_DOC.title; TAB_DOC.location.href= BASE_URL + your_name + '?v=2&url=' + encodeURIComponent(itemurl) + '&title='+encodeURIComponent(itemdesc); var seltext = TAB_DOC.selection.createRange().text; var t = 0; /* 表示完了待ち */ do { WScript.Sleep(250); t += 250; } while(BROWSER.IsBusy(TAB_ID) && (t < timeout)); if (BROWSER.IsBusy(TAB_ID)) { if (seltext){ /* 読み込み終わらないので選択テキストの自動入力が使えない */ BROWSER.MessageBox( "読み込みが終わらないので、概要の入力をしないで中断しました。\r" + "タイムアウト処理時間を長くするか、" + "もしくは概要の入力自体いらない場合は、\r" + "スクリプト内のこのメッセージ表示してる部分をばっさり削れば普通に使えます。" ); } s_end(); } /* 概要入力欄入れ替え */ var tarea = TAB_DOC.createElement("textarea"); var ext = TAB_DOC.getElementById("delForm").extended; ext.parentNode.appendChild(tarea); ext.parentNode.removeChild(ext); with (tarea){ name = "extended"; value = seltext; style.width = "40em"; style.height = "4em"; style.display = "block"; focus(); } //終了 s_end(); // セキュリティ設定取得、sleipnir用 function getSecurity(){ var o = BROWSER; var id = TAB_ID; return { JavaScript : o.IsJavaScriptEnabled(id), Java : o.IsJavaEnabled(id), RunActiveX : o.IsRunActiveXEnabled(id), DownloadActiveX : o.IsDownloadActiveXEnabled(id), Picture : o.IsPictureEnabled(id), Sound : o.IsSoundEnabled(id), Video : o.IsVideoEnabled(id) }; } //セキュリティ設定変更 sleipnir用。 function setSecurity(s){ BROWSER.SetSecurity( TAB_ID, s.JavaScript, s.Java, s.RunActiveX, s.DownloadActiveX, s.Picture, s.Sound, s.Video ); } // 終了処理 function s_end() { TAB_DOC = null; TAB_ID = null; BROWSER = null; WScript.Quit(); }