+ JavaScript の質問用スレッド vol.126 +at HP
+ JavaScript の質問用スレッド vol.126 + - 暇つぶし2ch701:Name_Not_Found
24/08/01 23:24:58.45 .net
どうなってほしいか書こうよ
とりあえずmyStr = document.getElementById("mg").value;をmuFuncの中に入れれ

702:Name_Not_Found
24/08/02 02:54:26.02 .net
>>698
ボタン押しても反応が無いってこと?コピペしただけでchromeで開いて各ボタンちゃんとalertでる
「動きますか?」だけじゃ期待する動作がなにかよくわからん

703:698-700 警備員[Lv.5][新芽]
24/08/02 11:04:33.97 .net
>>701
やってみます!

>>702
とりあえず、ボタン押してアラートを出したいです

出ましたか?
環境のせいかな

はてなblogの中でやってました
はてなでもfunction外でのアラートだと
ページ表示と同時に出るんですよね

一度ローカルでやってみます

704:702
24/08/02 13:35:09.75 .net
ローカルでデベロッパーツールがエラー吐かないなら
はてなで編集モードを「みたまま」にしてるってヲチじゃないよね

705:698-700
24/08/06 10:55:09.15 .net
それはhtmlモードです!
はてな上でも
fuctionの外のアラートは機能してます
ローカルでやったら動きました
どうやら原因は書き込んだら
はてなでは、onclick部分が自動でなくなるみたいです?
一部のjsの機能、コードを制限してるのかも
書き込み欄には記述されてて、記事保存しても
onclickはwebフォームのエディタ内にあるので
そこをコピペして、ローカルのエディタで
htmlにしたら動きました
そして翌日、はてなの記事を編集してみようとして
編集画面を見たら
なんとonclick部分のコード文言だけないのです
そりゃボタン押しても動かんわ
不思議な仕様があるようです
ちなみに、はてなの記事は公開じゃなくて
下書き保存でプレビューで見てます

706:Name_Not_Found
24/08/06 12:56:01.73 .net
URLリンク(to-ti.in)
このサイトの漫画をサクサク読みたいので
Tampermonkeyで "_" のキーを押したら次のエピソードに行けるようにしました
でも本当は最終ページ位置にいる事を確認して、ページめくりと同じ "LeftKey" で次へ行きたいのです
ソースを見ましたが、どもDOM要素のどのプロパティをチェックすればいいのか見当がつきません
どうか御教授お願いします

// Your code here...
document.body.addEventListener("keydown", ev=>{
if (ev.key == "_") {
document.querySelector(".next.typesquare_option").click()
}
});

707:Name_Not_Found
24/08/07 02:50:32.76 .net
>>705
おせっかいだけどonclickじゃない方法はわかるよね
document.getElementById('sub').addEventListener("click", () => { alert(555); });
>>698はどちらのボタンもid="sub"になっているから異なるidにする必要がある
めんどくさいのを覚悟で共通にしたいならclass

708:Name_Not_Found
24/08/20 19:50:28.33 sYiNFPFf.net
質問です
漢字交じりの
文字列① 昨日の夜も暑かった
その漢字を平仮名にした
文字列② きのうのよるもあつかった
この2つを使ってruby要素をマークアップしたいと考えています
<ruby>昨日<rt>きのう</rt></ruby>の<ruby>夜<rt>よる</rt></ruby>も<ruby>暑<rt>あつ</rt></ruby>かった
※文字列は例です
漢字と読みの対応が取れればよいので
双方を以下のように分割できれば良いと考えていて
配列① ['昨日', 'の','夜', 'も','暑', 'かった']
配列② ['きのう','の','よる','も','あつ','かった']
配列①の方は、正規表現で作れたのですが
配列②の方を、どうやって作ればよいか悩んでおります
配列①から平仮名の要素を抽出して文字列②にマッチする位置を探す
というのは試したのですが
配列①[1]の「の」が、文字列②の2文字目(「きのう」の「の」)にマッチしてしまうのでダメでした
なにかうまいやり方はありますでしょうか?

709:Name_Not_Found
24/08/20 22:01:19.68 .net
文字列①から配列①を作る
配列①の漢字を平仮名にして配列②を作る
おいおーい

710:Name_Not_Found
24/08/20 22:03:04.45 .net
配列①の漢字を平仮名にする方法を持ってないとかできないとかなにか特殊な理由があるって
とにかく平仮名オンリーの文を分かち書きしたいということなら形態素解析

711:Name_Not_Found
24/08/21 01:16:32.87 .net
配列①の平仮名で文字列①を再帰でsplit

712:Name_Not_Found
24/08/21 02:35:52.59 .net
例題"昨日の夜は暑かった今日の夜も暑い明日の夜は涼しいらしいから明日こそデリヘル呼ぼう"

713:708
24/08/21 09:47:50.81 zDcbUO74.net
>>710
ひらがな化には
goo labのAPIを使っています
URLリンク(labs.goo.ne.jp)

714:708
24/08/21 09:49:09.06 zDcbUO74.net
>>711
それをやると
たとえば先頭の「昨日」の読みに次の「の」が含まれているので
うまくいかんのです

715:708
24/08/21 09:53:30.05 zDcbUO74.net
>>710
形態素解析も既に試していまして
ただひらがな化後にやると
必ず同じ結果にならないことがありまして
で、ひらがな化前に分解して
感じ部分だけひらがな化すると
たとえば「知る」って文字だったとすると
「知」「る」に分解されて
「知」だけでひらがな化すると
「ち」が返ってしまうのです

716:Name_Not_Found
24/08/21 10:51:54.70 .net
それは確かにそうだね
じゃ漢字交じり文字列①を形態素解析で分割して読みを当てればいいんじゃない?
[ '昨日', 'の', '夜', 'も', '暑かっ', 'た' ]
[ 'きのう', 'の', 'よる', 'も', 'あつかっ', 'た' ]
‘暑かっ’みたいに形態素解析後の要素で仮名漢字交じりのやつは
対応する平仮名読みと比較して
[‘暑’, ‘かっ’]と[‘あつ’, ‘かっ’]に分割しながらルビをふる

717:Name_Not_Found
24/08/21 11:18:24.60 zDcbUO74.net
>>716
分割してからAPIに送ると
単語によってはうまくひらがな化されんのですよ
音読み訓読みが

718:Name_Not_Found
24/08/21 11:57:29.70 .net
>>717
うまくできないという例をいくつか出してみて

719:Name_Not_Found
24/08/21 12:30:31.08 .net
ひらがな化APIだと「昨日の夜も暑かった」は「さくじつの よるも あつかった」に変換される
形態素解析APIの結果とも整合性が取れてるから中で使ってるのは同じものだと思われる
昨日の夜も暑かった
[ "昨日", "名詞", "サクジツ" ]
[ "の", "格助詞", "ノ" ]
[ "夜", "名詞", "ヨル" ]
[ "も", "連用助詞", "モ" ]
[ "暑", "形容詞語幹", "アツ" ]
[ "かった", "形容詞接尾辞", "カッタ" ]
で平仮名オンリーのテキストを形態素解析にかけると下の出力が得られるので
これ使えば漢字の読み方の修正も可能
きのうのよるもあつかった
[ "きのう", "名詞", "キノウ" ]
[ "の", "格助詞", "ノ" ]
[ "よる", "名詞", "ヨル" ]
[ "も", "連用助詞", "モ" ]
[ "あつ", "形容詞語幹", "アツ" ]
[ "かった", "形容詞接尾辞", "カッタ" ]
ただこういうのって100%じゃないから
配列比較して単純な読み方違い以外の齟齬があるなら
要人力修正ということで記録しておいて後で対応すれば?

720:Name_Not_Found
24/08/21 19:55:28.70 zDcbUO74.net
>>719
詳しくありがとうございます
> 要人力修正ということで記録しておいて後で対応すれば?
やっぱそれですかね
けっこうな量のページ制作していて
テキストは全てルビ必須で
最初は手で書いていたら発狂しそうになって
で、rubyタグついた状態をクリップボードにコピーするものを
Node.jsで作っておりました
他の皆さんもありがとうございました

721:Name_Not_Found
24/09/01 21:06:11.29 0iCkG2Yk.net
このコードをinnerHTMLではなくtextContentで書くことってできる?
MDNにinnerHTMLはセキュリティリスクがある的なことが書いてある感じで、どうすればいいのかわからず
const links = [
'<a href="URLリンク(aaa.com)',
'<a href="URLリンク(bbb.com)',
'<a href="URLリンク(ccc.com)'
]
const linkRandom = Math.floor(Math.random() * links.length)
document.getElementById('randomLink').innerHTML = links[linkRandom]

722:Name_Not_Found
24/09/01 22:12:18.90 .net
target_element.setAttribute(‘href’, links[i].url);
target_element.textContent = links[i].text;
or
const link = document.createElement(“a”);
link.setAttribute(‘href’, links[i].url);
link.textContent = links[i].text;
target_element.replaceWith(link);

723:Name_Not_Found
24/09/02 11:36:14.68 khZNcjYy.net
そんな使い方なら
リスク関係ないじゃん

724:Name_Not_Found
24/09/03 06:43:47.48 YY8JHFIf.net
使い方的にリスクがないってこと!?
ここがわからないんだけど
links[i].url
links[i].text
もしかしてjQueryっていうライブラリの機能?

725:Name_Not_Found
24/09/03 06:46:11.57 YY8JHFIf.net
とりあえずこれで上手くいったんだけど
urlとtextが別の場所にあるので、使ってるうちに時々間違えそうな気がする
const randomLink1 = document.getElementById('randomLink1');
const linkUrls = [
'URLリンク(aaa.com)',
'URLリンク(bbb.com)',
'URLリンク(ccc.com)'
];
const linkTexts = [
'siteA',
'siteB',
'siteC'
];
const linkNum = Math.floor(Math.random() * linkUrls.length);
const Url = linkUrls[linkNum]
const Text = linkTexts[linkNum]
randomLink1.setAttribute('href', Url);
randomLink1.textContent = Text;

726:Name_Not_Found
24/09/03 06:47:06.44 YY8JHFIf.net
とりあえず回答ありがとう

727:Name_Not_Found
24/09/03 18:58:22.09 HnK+yF6X.net
>>724
innerHTMLのよろしくないところは
突っ込まれた文字列がすぐにHTMLとして評価されてしまうこと
なのでscript要素とか
onerror属性付きimg要素とか突っ込まれても
無条件に評価してJS実行しちゃう
そんなわけで、いろんなものを引き受けて
それをinnerHTMLに突っ込む仕組み
みたいなものを作るのはリスキーなわけだけど
けど>>721の使い方にはそんな余地はないじゃん?
じゅうぶんセーフティ

728:Name_Not_Found
24/09/03 21:03:01.23 YY8JHFIf.net
ちょっと内容が難しいけど、余地がなくセーフティーなんだ
わかったありがとう

729:Name_Not_Found
24/09/04 02:26:08.22 .net
この頭じゃ全然大丈夫じゃなさそうで心配

730:Name_Not_Found
24/09/08 02:31:54.41 AjuY/yt0.net
>urlとtextが別の場所にあるので、使ってるうちに時々間違えそうな気がする
俺ならobject使って1変数にまとめるかな
const links:{[key:"text"|"url",url:string}[] = [
{text:"siteA",url:"URLリンク(aaa.com)
{text:"siteB",url:"URLリンク(bbb.com)
{text:"siteC",url:"URLリンク(ccc.com)
]

731:Name_Not_Found
24/09/08 09:00:01.21 Q6ZYRY7o.net
>>730
見るからに初心者っぽい人に
断りなくts書くのは
ちょっと不親切だと思うの

732:Name_Not_Found
24/09/08 12:40:55.68 .net
>>730
>const links:{[key:"text"|"url",url:string}[]
間違いが多すぎやろw

733:Name_Not_Found
24/09/30 11:49:15.76 .net
html開いた時にソース内の記述全部読み込むんじゃなく
特定のボタン押した時にだけ画像やテキスト読み込むjavascriptサンプルってある?

734:Name_Not_Found
24/09/30 11:58:25.19 9ghRlxN3.net
>>733
ある

735:Name_Not_Found
24/09/30 15:09:05.71 .net
>>733
そのくらいならChatGPTに聞けばよい

736:Name_Not_Found
24/10/31 00:05:10.90 r3dI7c5/.net
誰かEchoAPIを聞いたことがあるのか
それはプログラムの効率を高めることができるって聞いて


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch