リンクをクリップボードにコピー
タブウィンドウに表示されているページ内のすべてのリンクを読み出してクリップボードにコピーすることもできます。リンクされているURLはaタグのhref属性に入っているので、これを読み出して改行コードで連結していきます。改行コードは"\r\n"の文字になります。ページ内のすべてのリンクを読み出したらクリップボードにコピーします。クリップボードへのコピーはparentWindow.clipboardData.setData()を使います。setData()には2つのパラメータが必要です。最初のパラメータはクリップボードに設定するデータの種類を指定します。今回は標準テキストなので"text"の文字を指定します。2番目のパラメータにはクリップボードに入れるテキストを指定します。
実際のプログラムはスクリプト004になります。通常、リンクのURLを取得したら文字列として+記号で連結します。しかし、IEのJScriptは文字列の連結に関しては非常に低速なため、リンクが数百あるだけで何秒もかかります。そこで、処理を速く終わらせるためにリンク先のURLを配列に入れておき、最後にjoin()を使って連結しています。このようにすると瞬時に処理が終わります。
今回作成したようなスクリプトがあればWeb制作時の手助けになるでしょう。
スクリプト004
function OnClick(){
// ページ内リンクのURLをクリップボードにコピーする
var idDocument = Lunascape.GetDocumentID(Lunascape.ActiveIndex);
var doc = Lunascape.GetDocumentObject(idDocument);
var txt = new Array();
var count = 0;
var aTag = doc.getElementsByTagName("a");
for(var i=0; i<aTag.length; i++){
txt[count++] = aTag[i].href + "\r\n";
}
var result = txt.join("");
doc.parentWindow.clipboardData.setData("text", result);
Lunascape.MessageBox(aTag.length+"個のリンクをクリップボードにコピーしました");
}