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

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

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

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

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

2回答

826閲覧

SwiftのevaluateJavascriptでCSS変更したい。

MycoChild

総合スコア36

JavaScript

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

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2021/11/13 08:41

編集2021/11/13 08:56

SwiftでevaluateJavascriptをする際、本当になぜかわからないのですが、フォントサイズを変えることはできるのに、色を変えることができません。なぜなんでしょうか?

kokowokaeruクラスの最初の要素を変えるコード。
return change_のときは効かなくて、return change_2のときは効きます。

Swift

1var customCol = "green" 2var customFontSize = "100" 3func change(num: Int) -> String{ 4 let change_ = """ 5 function changeCol(newCol){ 6 document.querySelectorAll('.kokowokaeru')[(num)].style.cssText = 'background-color:'+newCol+';' 7 } 8 changeCol((self.customCol)) 9 """ 10 let change_2 = """ 11 function changeFontSize(newFontSize){ 12 document.querySelectorAll('.kokowokaeru')[(num)].style.cssText = 'font-size:'+newFontSize+'px;' 13 } 14 changeFontSize((self.customFontSize)) 15 """ 16 //return change_ 17 return change_2 18 }

Swift

1webView.evaluateJavaScript(change(num:0))

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

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

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

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

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

guest

回答2

0

自己解決

自己解決しました。
結論から言うとvar customCol = "green"var customCol = "\'green\'"にするとできました。
サイズを変えるときの'font-size:'+newFontSize+'px;'のnewFontSizeは文字列が入るものと思っていたら、var customFontSize = "100"で文字列しているから起こった勘違いで、JS内(let change_2)ではcustomFontSizeは数になる(let change_2が文字列なのでややこしい)。var customCol = "green"のままだと、let change_中のjs関数内でgreenが文字列になっておらず、文字列中の文字列に直さないといけなかったのです。

投稿2021/11/13 09:14

編集2021/11/13 09:15
MycoChild

総合スコア36

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

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

0

Swift経験ないので動作確認できませんが、JavaScriptのコードだけ見ると、
changeCol(newCol)と定義されてますが、呼び出しはchangeFontSize("yellow")となっています。
定義した関数を呼び出してないからでは?

JavaScript的にはReferenceErrorが出るものと思います。

投稿2021/11/13 08:53

編集2021/11/13 08:55
m.ts10806

総合スコア80875

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

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

MycoChild

2021/11/13 08:58

すみません訂正しました。ここに書くときに間違えました。 コードの方は正しいので解決していません。
m.ts10806

2021/11/13 09:02

.kokowokaeruはどういう要素ですか? あと、それぞれ想定の値(またカラーを正しく識別できる値)はわたっているのでしょうか。 カラーコードやカラーネームが正しくないと色がつかないこともあります。 編集前のコードにあったように固定値で試されたほうが問題切り分けにもなると思います。
MycoChild

2021/11/13 09:06

ありがとうございます。 自己解決しました。
m.ts10806

2021/11/13 09:08

それは良いのですが、どのように解決したのか顛末をきちんとまとめて回答として投稿しておいてくださいね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問