簡単なトリックを使用してこれを解決しました。役に立つかもしれません。
リンクに基づいてターゲット属性を動的に削除しました。つまり、リンクが未定義、空、または javascript:void(0) の場合、以下のコードを使用してターゲット属性を削除します。
リンクが適切なものである場合、そのハイパーリンクのターゲット属性を追加します(私のページではリンクが動的であるため、「2番目のif条件」がそれを行います)。
サンプルの html ファイル (Test.html) をコピーしました。ページのオンロード時に属性を削除する場合は、このファイルのスクリプト コードをコピーし、必要なファイルの末尾に貼り付けます。
これを動的リンクに適用する場合は、このコードを 1 つの関数に入れる必要があり、必要なときに呼び出すことができます。
このコードは、そのページ内のすべてのハイパー リンクに適用されます。クラスまたはその他の属性を使用して、これを特定のリンクのセットに制限できます。
Test.html
---------
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<a href="javascript:void(0);" target="_blank">Link1</a>
<a href="javascript:void(0);" target="_blank">Link2</a>
<a href="www.url1.com" target="_blank">Link3</a>
<a href="www.url2.com" target="_blank">Link4</a>
<script>
$("a").each(function() {
if(typeof(this.href) == 'undefined' || this.href == 'javascript:void(0);') {
$(this).attr('href', 'javascript:void(0);');
$(this).removeAttr('target');
}
if(typeof(this.href) != 'undefined' && this.href != 'javascript:void(0);') {
var s_link = this.href;
if (s_link.indexOf('http://') === -1 && s_link.indexOf('https://') === -1) {
s_link = 'https://' + s_link;
}
$(this).attr('href', s_link);
$(this).attr('target', '_blank');
}
});
</script>