質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

1353閲覧

javascript(jquery)のリンクを新規ウィンドウでひらくtarget_bankを付与したい

niconic73027793

総合スコア215

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2021/08/31 16:37

jquery で吐き出されるURLのソースを新規ウィンドウで開くようにtarget_blankを付与しようとしたところ、

下記の参考サイトをみました。
【JavaScript】外部リンクにtargetを自動追加して別タブで開くようにする
参考サイト内容

<div id="iframe"> <script type= "text/javascript"> $(function(){ $.ajax({ url: "https://www.e-nisino.com/blog/feed/", cache: false, dataType:"xml", success: function(xml){ $(xml).find('item').each(function(){ var title = $(this).find('title').text(); var url = $(this).find('link').text(); $('<li></li>').html('<a href="'+url+'">'+title+'</a>').appendTo('ul#feedList'); }); } }); }); //ページのドメインを取得 const domain = document.domain; //取得したドメインを検証対象に指定 const regexp = new RegExp(domain); //特定の要素内に存在するa要素が対象 const target = document.getElementById('feedList'); const elements = target.getElementsByTagName('a'); //ページ内に存在する全てのa要素が対象 //const elements = document.getElementsByTagName('a'); for(let element of elements){ //a要素のhref(リンク)を取得 let href = element.getAttribute('href'); //a要素のhref(リンク)にドメインが含まれていなければ if(!regexp.test(href)){ //a要素にtarget="_blank"を追加する element.setAttribute('target', '_blank'); //a要素にrel="noopener noreferrer"を追加する element.setAttribute('rel', 'noopener noreferrer'); } } </script> </div> <ul id="feedList"></ul> <ul id="feed"></ul>

ソースに参考サイトのソースを追加しましたが、
target_blank で動きません。

どうすればきちんど、新規ウィンドウでひらけますでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

原因は、
非同期処理の前に追加しようとしているからです。
つまり、a要素が追加される前に、target="_blank"を追加しようとしてしまっています。

なので、$ajaxの中の構文内の時点で、
target="_blank"を加味した要素を追加するようにするのが手っ取り早いかと。

投稿2021/09/01 00:02

miyabi_takatsuk

総合スコア9555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

javascript

1<script> 2$(function(){ 3 title="test"; 4 url="http://exsample.com"; 5 $('ul#feedList').append($('<li>').append($('<a target="_blank">').attr('href',url).text(title))); 6 7}); 8</script> 9<ul id="feedList"></ul> 10

投稿2021/09/01 00:15

yambejp

総合スコア116724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

niconic73027793

2021/09/01 02:33

ありがとうございます! 出来ました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問