Closed7

Zendeskのチケットフィールドの説明をハイパーリンクにしたい

筧剛彰 / Takaaki Kakei筧剛彰 / Takaaki Kakei
  • デフォルトではチケットフィールドの説明をハイパーリンクにすることはできない
  • やるならZendesk Guideで共通の関数があるとよさそう
筧剛彰 / Takaaki Kakei筧剛彰 / Takaaki Kakei

雑につくってみた。script.jsに設定する。

function convertToHyperlinks() {
    // 'request_custom_fields_'で始まる全ての要素を取得
    var elements = document.querySelectorAll('[id^="request_custom_fields_"]');

    // 各要素に対して処理を実行
    elements.forEach(function(p) {
        var updatedHtml = p.innerHTML.replace(
            /\[([^\]]+)\]\[<a href="([^"]+)" rel="noopener noreferrer" target="_blank">[^<]+<\/a>\]/g,
            '<a href="$2" rel="noopener noreferrer" target="_blank">$1</a>'
        );
        p.innerHTML = updatedHtml;
    });
}

document.addEventListener('DOMContentLoaded', function() {
    convertToHyperlinks();
});
筧剛彰 / Takaaki Kakei筧剛彰 / Takaaki Kakei

改行も実装してみる

function convertContent() {
    // 'request_custom_fields_'で始まる全ての要素を取得
    var elements = document.querySelectorAll('[id^="request_custom_fields_"]');

    // 各要素に対して処理を実行
    elements.forEach(function(p) {
        // リンクパターンを正しいハイパーリンクに置き換え
        var updatedHtml = p.innerHTML.replace(
            /\[([^\]]+)\]\[<a href="([^"]+)" rel="noopener noreferrer" target="_blank">[^<]+<\/a>\]/g,
            '<a href="$2" rel="noopener noreferrer" target="_blank">$1</a>'
        );

        // 文字列としての改行タグ </br> を正しい <br> に置き換え
        updatedHtml = updatedHtml.replace(/&lt;\/br&gt;/gi, '<br>');

        // 変更されたHTMLを元の要素にセット
        p.innerHTML = updatedHtml;
    });
}

document.addEventListener('DOMContentLoaded', function() {
    convertContent();
});
このスクラップは2024/04/16にクローズされました