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

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

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

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

JavaScript

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

Q&A

解決済

2回答

294閲覧

android: inputのvalue書き換え時にスペースが挿入される。

Aranika_roty

総合スコア14

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

JavaScript

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

0グッド

0クリップ

投稿2022/08/04 13:13

環境

android Sharp 507SH, ローカルファイル

もしかしたらspck editorが関係してるかもしれません
spck editor経由のchromeでも同じ結果でした

PCでは全く問題ないです。

発生している問題

inputのvalueを他の要素の文字列に書き換えた時に、参照した要素の入れ子の深さ分、inputの入力ボックスに半角スペースが前後に挿入される。

例:
(ダブルクォートは開始・終了位置を明確にするために書いてます)

" sample "

また、android(spck editorとchromeで確認)のconsoleでid="text"のtextContentを見ると下のようになります

(ダブルクォートはandroidでは本来出力されませんが開始・終了位置を明確にするために書いてます)

" sample "

該当のソースコード

html

1<!-- 分かりにくい場合はid="text"の入れ子を深くしてください --> 2<div> 3 <div> 4 <div> 5 <div> 6 <div id="text">sample</div> 7 </div> 8 </div> 9 </div> 10</div> 11<input type="text" id="input">

JavaScript

1const text = document.getElementById("text"); 2const input = document.getElementById("input"); 3 4text.addEventListener("click", () => { 5 input.value = text.textContent; 6});

試したこと

JavaScript

1input.value = text.textContent.replace(/\s+/g, "");

教えて欲しい事

置換すればいいのですが、根本的な解決になってないですし、
何故androidだけこんなことが起こるのか(改行されることも含めて)理由が知りたいので教えてくれると嬉しいです。

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

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

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

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

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

guest

回答2

0

親方向にいくらネストを深くしても#textのtextContentは変わりません
androidで試しましたが結果は同じでした

投稿2022/08/05 03:57

yambejp

総合スコア114839

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

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

0

自己解決

spck editorが原因だったようです。
htmlとjsをまとめたファイルを再度chromeで表示したらスペースは表示されませんでした。
(質問文の中で言ったchromeと言うのは全てspck editorから表示したchromeです。またconsoleもspck editor経由のchromeの物です。言葉足らずですいません)

PCと繋げる環境じゃないのでconsoleを確認出来ませんがませんが、恐らく問題無いと思います。

実際に使ったコード

html

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <title>test</title> 8</head> 9<body> 10 <div> 11 <div> 12 <div> 13 <div> 14 <div> 15 <div> 16 <div id="text">sample</div> 17 </div> 18 </div> 19 </div> 20 </div> 21 </div> 22 </div> 23 <input type="text" id="input"> 24 <script> 25const text = document.getElementById("text"); 26const input = document.getElementById("input"); 27 28text.addEventListener("click", () => { 29 console.log(text.textContent.replace(/\s+/g, "")); 30 console.log(text.textContent); 31 // document.write(text.textContent); 32// input.value = text.textContent.replace(/\s+/g, ""); 33 input.value = text.textContent; 34 35 36}); 37</script> 38</body> 39</html>

念のためこのコードをspck editorから実行してみましたが、やはりスペースは挿入されました。

以下参考画像

(左:spck editorのpreview機能 左:spck editorから「ブラウザで開く」で見たもの(chrome))

イメージ説明

以下環境

chrome: 103.0.5060.129
Spck Editor: 6.2.12
androidバージョンは8.1.0

余談(読み飛ばしてください)

android本体のファイルをインポートせずにspck editorで開いて編集(恐らく非正規の操作)という事を二回したら編集してたワークスペースのデータが吹き飛びました。
以上です

投稿2022/08/05 22:36

Aranika_roty

総合スコア14

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問