本部長は管理ができない

Salesforceに関わっているエンジニアの技術メモ。ときどきそれ以外。

カスタム項目IDを抽出するブックマークレット

関連リストから新規作成時に、呼出元オブジェクトの値を初期値としてセットするために、カスタム項目IDが必要になったので作ったもの。
初期値はURLパラメータで渡している。
Salesforceでは、URLパラメータを指定した画面遷移はサポート対象外となっているので注意。
URLパラメータの使用について


カスタム項目IDは「00N」で始まるため「00N」を含むリンクを取得している。
title属性が空文字であるリンクが条件になっているのは、編集、削除のリンクもカスタム項目IDを含んでいるため、これを対象外とするため。

javascript:(function(lnk,doc){doc.write('<table>');for(var i=0;i<lnk.length;i++){var url=lnk[i].href;if(url.indexOf('http')!=-1){if(lnk[i].title==''&&url.indexOf('/00N')!=-1)doc.write('<tr><td>'+lnk[i].innerHTML+'</td><td>'+url.match(/00N.+(?=\?)|00N.+/)+'</td></tr>');}}doc.write('</table>');})(document.getElementsByTagName('a'),open().document);


インデントを含めたスクリプトは以下。

javascript:(
    function(lnk,doc){
        doc.write('<table>');
        for(var i=0;i<lnk.length;i++){
            var url=lnk[i].href;
            if(url.indexOf('http')!=-1){
                if(lnk[i].title==''&&url.indexOf('/00N')!=-1)
                    doc.write('<tr><td>'+lnk[i].innerHTML+'</td><td>'+url.match(/00N.+(?=\?)|00N.+/)+'</td></tr>');
            }
        }
        doc.write('</table>');
    }
)(document.getElementsByTagName('a'),open().document);


リンク抽出部分はこちらを参考にさせて頂きました。
blog.鶯梭庵/links/ウェブページの画像とリンクのリストを作成するブックマークレット