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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

Onsen UI

HTML5で記述されたモバイルアプリの高速化、およびネイティブアプリライクなUIが作れるフレームワーク。 様々なJavaScriptフレームワークと併せて使用することができます。スマートフォン向けアプリ、Webサイトに必要なアニメーション、UI/UXを実装することが可能になります。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

Q&A

1回答

290閲覧

URLクリック時のアクション

k_fuku

総合スコア6

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

Onsen UI

HTML5で記述されたモバイルアプリの高速化、およびネイティブアプリライクなUIが作れるフレームワーク。 様々なJavaScriptフレームワークと併せて使用することができます。スマートフォン向けアプリ、Webサイトに必要なアニメーション、UI/UXを実装することが可能になります。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

0グッド

0クリップ

投稿2018/06/05 00:13

編集2018/06/05 08:31

前提・実現したいこと

Monacaという開発環境でハイブリットアプリケーションの作成をしているのですが、元々あるaタグのurlを取得(クリックした際)し、それをInappBrowserで開きたいと思っています。
aタグに関しては別のサーバーからのhtml情報を取得しそのまま反映させているので手を加えることができない状態です。(下記のソースのようにng-bind-html="htmltext"で引っ張ってきており、htmltextで表示した中にaタグが入っています)
Javascript等を使用してページ内のURLをクリックしたときだけそのURL遷移先をInappBrowserで表示することはできないでしょうか。

該当のソースコード

html

1<ons-page id="list_inside.html"> 2 <div class="wrap"> 3  <div ng-bind-html="htmltext" class="list"> 4    //以下がbindで表示された中身 5    <p></p> 6 <p>中身</p> 78    ・ 9    <a>中身</a> 10 <p></p> 1112    ・ 13    ・ 14 //ここまで 15   </div> 16 </div> 17</ons-page>

試したこと

document.getElementsByTagName('a').getAttribute('href');
等試しましたが取れませんでした。

シングルページアプリケーションなので、イベント処理をどのように行うのが良いのかもわかっていません。

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

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

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

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

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

m.ts10806

2018/06/05 01:20

調べてみたこと、やってみたこと(そのソースコード)を具体的に追記してください。また参考先サイトがあればURLも質問に追記してください。既に見た先が回答についてしまうと無駄なやり取りが発生しますし、もしかしたら参考記事の理解が間違っているために解決に至れていないのかもしれません。https://teratail.com/help/question-tips#questionTips1-2
m.ts10806

2018/06/05 01:21

質問テンプレート部分の文言が多く残っています。質問内容や意図を読み取る上ではノイズにしかなりませんので、自身の質問に関係のある文章(およびソースコード)のみ残してください。
k_fuku

2018/06/05 01:40

大変申し訳ございません。書き換えさせて頂きました。ありがとうございます。
m.ts10806

2018/06/05 02:19

提示コードからは読み取れなかったのですが、実際にブラウザで表示した際にaタグは存在しているのでしょうか?
k_fuku

2018/06/05 02:26

はい。アプリで確認していますが、遷移もできていますし、ログでもaタグが出ているのを確認できています。
guest

回答1

0

※Monaca使ったことなくInappBrowserについてもドキュメント読んだ程度なので直接の解決策ではなくアドバイス程度の回答です

要はhrefを取得できれば良さそうという認識での回答です。

getElementsByTagName()が返すのはHTMLCollectionなので取得後、例えばforなどでループして1つ1つのエレメントに対して取得するような書き方をしなければなりません。

html

1<a href="a.html">a</a> 2<a href="b.html">b</a> 3<a href="c.html">c</a>

js

1let atags = document.getElementsByTagName("a"); 2for(i=0;i<atags.length;i++){ 3 console.log(atags[i].getAttribute("href")); 4} 5//a.html 6//b.html 7//c.html

ただ、preventDefaultでキャンセルしておかないといけないかもしれません。

対象のリンク先が限定されているのであれば、InappBrowserのopenを直接対象のaタグにonclickに入れたほうがいいかもしれません。

投稿2018/06/05 02:38

m.ts10806

総合スコア80850

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

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

k_fuku

2018/06/05 07:17

ありがとうございます。 上記でいけそうなんですけれども、ng-bind-htmlにAタグがあることはコンソール等でも確認したにも関わらず、 var value = atags.length ; console.log( value ) ;を行うと、0と出てしまいます。 もしかしたら、取得できないのかもしれません。。。
m.ts10806

2018/06/05 07:37

ブラウザに表示されたhtmlソースを質問に追記いただいて良いですか?
k_fuku

2018/06/05 08:30

ソースを追記しました。 実際に表示されたものをウェブで見てみるとほとんど<p>タグだらけで一つだけ<a>タグがある形でした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問