【ハウツー】

カスタマイジングLunascape - リンクをピックアップしてクリップボードに!!

3 リンクをクリップボードにコピー

    古籏一浩  [2009/04/28]

    リンクをクリップボードにコピー

    タブウィンドウに表示されているページ内のすべてのリンクを読み出してクリップボードにコピーすることもできます。リンクされている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+"個のリンクをクリップボードにコピーしました");
    }
    

    関連記事

    関連したタグ

    新着記事

    特設サイトの情報

      人気記事

      一覧

      新着記事

      特別企画

      マイナビニュースマガジン