文字列をエスケープして Javascript 文字列リテラルにするには、バックスラッシュを 2 つのバックスラッシュに置き換え、文字列区切り文字をバックスラッシュと区切り文字に置き換えます。
<a onclick="AddressHandler.ProcessAddress('<%= homeAddress.Replace(@"\", @"\\").Replace("'", @"\'") %>');" class="button-link">change</a>
注:javascript:
プロトコルは、イベント ハンドラとしてではなく、URL にスクリプトを配置するときに使用されます。
編集:
スクリプトに HTML エンコードが必要な文字も含まれている場合は、Javascript 文字列をエスケープした後に行う必要があります。
<a onclick="<%= Html.Encode("AddressHandler.ProcessAddress('" + homeAddress.Replace(@"\", @"\\").Replace("'", @"\'") +"');") %>" class="button-link">change</a>
そのため、文字列に何が含まれているかわからない場合は、安全のために、最初に文字列リテラルをエスケープする必要があります。次に、コードを HTML エンコードして、HTML タグの属性に配置できるようにします。