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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

747閲覧

text_areaの内容をtwitterにシェアする

ninginnn

総合スコア35

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2019/02/03 13:49

編集2019/02/03 16:57

text_areaの内容をtwitterをシェアすることを考えています。
あまりやり方が載っていなく

stackoverflowの質問

などを参考にして実装したのですが、

一度textareaの内容を取り出すコードを挟まなければいけないので、このサイトのように二度取り出さなくてはなりません。

どうにかして、機能を一つにまとめることはできないでしょうか?
知恵のほどをお貸しいただけたら幸いですm()m

aタグの中のdata-textが実際にツイートに入る内容です。

htmljavascript

1<textarea id="txtbox" style="width:600px; height: 50px"; class="content2"></textarea><br /> 2<button class="btn btn-primary" onClick="quotes()">2</button> 3<hr /> 4<div class="tweet_button"> 5 <a href="https://twitter.com/share" class="twitter-share-button tweet_button"{count} data-url="goo.gl/udj2qQ" data-text="blabla" data-size="large">ツイート</a> 6</div> 7<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script> 8<br>

javascript

1<script> 2 3function quotes() { 4 var txt = document.querySelector('.content2').value; 5 var tbutton = document.querySelector('.twitter-share-button'); 6 7 tbutton.parentNode.removeChild(tbutton); 8 9 var newA = document.createElement('a'); 10 newA.setAttribute('href', 'https://twitter.com/share'); 11 newA.setAttribute('class', 'twitter-share-button'); 12 newA.setAttribute('data-url', 'goo.gl/udj2qQ'); 13 newA.setAttribute('data-text', txt); 14 newA.setAttribute('data-size', 'large'); 15 document.body.appendChild(newA); 16 twttr.widgets.load(); 17} 18</script> 19

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

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

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

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

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

m.ts10806

2019/02/03 14:01

>quiitaの質問 Qiita ですし、そもそもリンク先はstackoverflowですよ。
ninginnn

2019/02/03 14:02

間違えました。修正いたします。
退会済みユーザー

退会済みユーザー

2019/02/03 14:02

スタックオーバーフローはQIITAではないです
ninginnn

2019/02/03 16:32

ご返信のほどありがとうございます。そのページのaタグはすでに実装されています
ninginnn

2019/02/03 16:40

Textareaの内容をワンクリックで共有するページに飛ばしたいのですが、 内容を取得するコードと、それを共有する二段階に分けなければ実装できなくて、どうにか解決できないかと悩んでいます。
wwbQzhMkhhgEmhU

2019/02/03 16:45

今内容読んだ。 ボタンを押すとポップアップが開くんだけど、その内容に元からあるテキストエリアの内容をコピーするのが嫌ってこと?
ninginnn

2019/02/03 16:50

ありがとうございます。そういう認識でございます。 Textareaの内容を開いた時点で入れることは可能でしょうか? aタグの中のtext-dataが入る内容なのですけれども。
wwbQzhMkhhgEmhU

2019/02/03 16:53

ポップアップが開くこと自体はいいの?
wwbQzhMkhhgEmhU

2019/02/03 16:53

またボタン押さないといけないからワンクリックにはならないけど
ninginnn

2019/02/03 16:54

ポップアップが開いても大丈夫でございます。
wwbQzhMkhhgEmhU

2019/02/03 17:07

1) ツイッターのボタンを見えないようにしておく 2) 別のボタン押下でツイッターのボタンにテキストエリアの内容を埋め込む(URLエンコードが必要?) 3) そのままツイッターのボタンクリックイベント発火 で行けるのでは? 他は、 1) テキストエリアからのフォーカスアウトでツイッターのボタンにテキストエリアの内容を埋め込む でもいいけど
ninginnn

2019/02/04 02:08

返信遅れて申し訳ございません。ありがとうございます。 三つとも試させていただきます。
guest

回答1

0

ベストアンサー

待っていたのですが、なかなか回答が出ないので、サンプルだけ書いておきます。
結局、URLさえあってれば後はどうでもいいようだったので、元のサイトのコードを見て適当にポップアップにしておきました。

HTML

1<textarea id="txtbox" style="width:600px; height: 50px" ; class="content2"></textarea><br /> 2<button id="tweet">tweet</button> 3<hr /> 4<script> 5 document.getElementById("tweet").addEventListener('click', function(event) { 6 event.preventDefault(); 7 var left = Math.round(window.screen.width / 2 - 275); 8 var top = (window.screen.height > 420) ? Math.round(window.screen.height / 2 - 210) : 0; 9 window.open( 10 "https://twitter.com/intent/tweet?text=" + encodeURIComponent(document.getElementById("txtbox").value), 11 null, 12 "scrollbars=yes,resizable=yes,toolbar=no,location=yes,width=550,height=420,left=" + left + ",top=" + top); 13 }); 14</script> 15

ライブラリは何を使えるのか分からなかったので、素のJavaScriptで書いています。本当はそのライブラリに合わせた方がいいです。ポップアップの出し方も原始的ですしね。
使うときには多分大幅修正されると思いますが、URLEncodingするのだけは忘れないでくださいね(現状空白は+でなく%20だったり、正確な仕様とは若干ずれてます)。
HTMLのエンコーディングはUTF-8でないとダメですよ。

投稿2019/02/03 19:30

wwbQzhMkhhgEmhU

総合スコア343

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

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

ninginnn

2019/02/04 02:28

ありがとうございますm()m 丁寧に回答していただき大変助かりました。 解決策もいくつも出していただき勉強になりました。 本当にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問