X



+ JavaScript の質問用スレッド vol.131 +
■ このスレッドは過去ログ倉庫に格納されています
0001Name_Not_Found
垢版 |
2017/11/21(火) 21:58:33.01ID:???
JavaScript を自ら学ぶ人のための質問スレッドです。
次スレは>>950が(本スレで改善案があれば考慮して)立ててください

■規則/推奨ルール
・メール欄を空欄にし、名前にレス番を入れることを強く推奨(なりすまし防止)
・質問内容は具体的に。言葉だけでなく、出来る限り再現性を確認したサンプルコードの掲示。
・質問テンプレートの利用推奨。
・質問への「答え」だけでなく「意見」を出しても良い。

■禁止行為
・丸投げ質問
・迷惑スクリプトの質問
・オレオレ用語の使用(一般的な用語を使用する事)
・煽り、批判等の他人を不快にさせる行為(批判の代わりに「AよりBが良い」のような代案を出す事)

■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【条件】期待する回答の条件を書いてください。(ex: jQuery不可, フレームワーク不可)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/

■回答者へ
・回答には多様性があります。他人の回答を尊重してください
・動作ブラウザや環境が限られる場合は、それを明記してください
・他人の回答を批判する代わりに、自分ならこう書くという例を示してください
・質問者がJavaScriptでなければ実現できないと勘違いしてるなら、その否定としてHTMLとCSSで実装しても良い
・他人の回答を見たくないのであれば、文句をつける代わりにNGにして見えないようにしてください。文句をつける=荒らしです
0732Name_Not_Found
垢版 |
2018/02/16(金) 13:18:36.03ID:???
昔foreignObjectを使って要素のミラーを作るというのを試した記憶があるのですが
今その情報を教えて頂けますか?
「あああ」をミラーしたら「あああ」が2つになって、大本を 「いいい」に変更するとコピー先も「いいい」になるという機能です
0735Name_Not_Found
垢版 |
2018/02/16(金) 17:13:54.49ID:???
地図上に車のアイコンを置いて決まったルート上(svgのパス上)を動かすアニメーションを考えていて、進行方向に合わせてアイコンの向きを変えたいのですが、何を基準に計算をして向きを調整すれば良いかわからず困っています。
svg関連で角度の計算に使える関数やよい方法があれば教えていただけますか。

動きとしては↓こちらのサイトのようなものです。
https://itstudio.co/sample/svganime/anime7.html
0736Name_Not_Found
垢版 |
2018/02/16(金) 17:30:02.88ID:???
>>735
その犬の動きのほうがよく分からんw
0738Name_Not_Found
垢版 |
2018/02/16(金) 19:03:04.44ID:???
ここの奴ら役に立たんな
もうお前らには一切聞かんわ
0739Name_Not_Found
垢版 |
2018/02/16(金) 19:39:44.83ID:7Rrckydw
>>735
SVGの線上となるとアレだけど
動かすルートが決まっているなら接線の傾き求めればいいじゃない
0741Name_Not_Found
垢版 |
2018/02/16(金) 20:21:32.71ID:???
>>739
接線か、なるほど気づきませんでした
接線の求め方から勉強してみます。。
0742Name_Not_Found
垢版 |
2018/02/16(金) 23:25:19.42ID:???
決まったルートがあるならatanだけで済む気がするんだが
0743Name_Not_Found
垢版 |
2018/02/17(土) 00:43:38.95ID:???
>>736
すみません。アニメーション自体はサイトのようなもので、これに角度の変化を付け加えたいという意味でした。
そしてよく見たらサイトのも微妙にrotateで傾けてますね。。折り返しの際に逆を向いてくれないので考えているものとは違いますが。
0744Name_Not_Found
垢版 |
2018/02/17(土) 01:07:44.05ID:Y6pp8OiO
>>743
反転はtransformのscaleを使うのが容易いかも
0745Name_Not_Found
垢版 |
2018/02/17(土) 16:14:43.08ID:???
var test = {
a: 1,
b: 5,
c: 6
}

ってあって
test.aからtest.cまでの値をループで取得しようと思ったらどうすればいいですか?
0746Name_Not_Found
垢版 |
2018/02/17(土) 16:16:29.54ID:???
3Dモデルでないと不自然になるよ
0747Name_Not_Found
垢版 |
2018/02/17(土) 16:19:34.31ID:???
>>745
『javascript test.aからtest.cまでの値をループで取得しようと思ったらどうすればいいですか?』
のGoogle検索結果を見ていけばわかる
0748Name_Not_Found
垢版 |
2018/02/17(土) 16:26:59.42ID:???
for(let [key, value] of Object.entries(test)){
console.log(key + ':' + value);
}
こうするとちょっとPHPっぽい
0749Name_Not_Found
垢版 |
2018/02/17(土) 17:13:27.27ID:???
>>745
for (let v of Object.values(test)) {
console.log(v);
}
とか
Object.values(test).forEach(v => {
console.log(v);
});
0750Name_Not_Found
垢版 |
2018/02/17(土) 17:23:12.09ID:???
こっちのが汎用的だったか
Object.entries(test).forEach(([key, value], index) => {
console.log(key, value, index);
});
0751Name_Not_Found
垢版 |
2018/02/17(土) 17:51:17.23ID:???
なんで標準のJavaScriptを使うと
冗長になるのか教えてほしいものだ。

lodashを使ったほうが短いとか意味分からん
_.forOwn(test, (value, key) => {
 console.log(key + ':' + value);
});
0752Name_Not_Found
垢版 |
2018/02/17(土) 18:17:17.64ID:???
どの言語も普通は標準よりライブラリ使った方が短くならね?
0753Name_Not_Found
垢版 |
2018/02/17(土) 18:54:43.59ID:???
だよなw
いつものlodashくんがスレチ話するためのエクスキューズのつもりなんだろw
0754Name_Not_Found
垢版 |
2018/02/17(土) 21:34:02.04ID:???
自作の関数作ればもっと短くなるよね
はいlodash敗北
0755Name_Not_Found
垢版 |
2018/02/17(土) 21:39:19.11ID:???
ほんとlodashの名前が出るだけで
必死になるなw
0756Name_Not_Found
垢版 |
2018/02/17(土) 22:26:40.80ID:???
for( var key of test )とかfor( var key in test )じゃダメなん?
0758Name_Not_Found
垢版 |
2018/02/17(土) 23:23:30.35ID:???
>>756
前者はそもそもエラーなので論外
後者は普通にあり
entriesやvaluesは使えない環境も多いしね
個人的にはObject.keysを使うことが多いかな
よっぽど大量にループさせるんならfor..in使うけど
0759Name_Not_Found
垢版 |
2018/02/17(土) 23:59:58.10ID:???
使えない環境はあるがけして多くはない
そんなことを言ったら何もできない
いつまでレガシーブラウザを延命させる気なんだ
0760Name_Not_Found
垢版 |
2018/02/18(日) 05:22:16.55ID:???
for..inで十分にできて、key / valuesが key / test[key] になる程度の違い
構造は明示されてて
構造が未知だったり完全に信頼できなかったりしない
javascriptはゴルフ絶対主義なんか
0761Name_Not_Found
垢版 |
2018/02/18(日) 06:20:37.10ID:???
for-inのデメリットは.hasOwnProperties()のチェックを入れるかどうかの問題が発生するから

もちろんオブジェクトにそのチェックが不要だという保証があるなら.hasOwnProperties()で調べる必要はない
0763Name_Not_Found
垢版 |
2018/02/18(日) 06:44:57.56ID:???
hasOwnPropertiesやっててよかったとか
今までに一度もないなw
0764Name_Not_Found
垢版 |
2018/02/18(日) 08:22:54.79ID:???
for..inは式ではなく文なのがちと煩わしい
とはいえ素のJavaScriptで
Object.values(test).filter(x => x % 2 === 0).map(x => x * 2)
みたく書くと無駄に何度も配列作っちゃうから、そういう意味ではlodashが羨ましい
0766Name_Not_Found
垢版 |
2018/02/18(日) 11:31:30.39ID:???
何度も配列作らなくてもforEach内の処理で十分な場合が多い
filterとかしなくてもif returnで良いんだし
0768Name_Not_Found
垢版 |
2018/02/18(日) 13:05:05.05ID:???
>>766
処理分離したいし破壊的代入はなるべく避けたいじゃん?
0769Name_Not_Found
垢版 |
2018/02/18(日) 14:10:15.91ID:???
破壊的代入したって頑張ればできるだろ
ほんの少しづつ頑張ればいいだけだよ
小さいものを積み重ねても大きくはならない
0770Name_Not_Found
垢版 |
2018/02/18(日) 14:12:21.99ID:???
>>768
今回がそもそもfor-inとの対比の話だからな
値を列挙して利用したいというだけだから
配列をどう処理していきたいかみたいな一般論とは話が違う

つまりfor-ループの{}内の置き換えだから、それは素直に考えるとforEachでいいじゃないかと
列挙したい物を連続してフィルタリングしたりする書き方したいか?ということ
0771Name_Not_Found
垢版 |
2018/02/18(日) 14:23:07.60ID:???
そもそも、すべての属性を取得するような、
メタプログラミングみたいな設計自体がおかしい

もし、テストツール以外で、こういう設計をしていたら、おかしいと思え!
0773Name_Not_Found
垢版 |
2018/02/20(火) 16:33:41.72ID:rZ442w9v
childNodes[n] や item(n) では最後の要素は -1 では取得できないってことでいいですよね?
n の変更でアクセスする方法ってないんでしょうか?
lastChildとかつうと位置が変わった時に書き換えるのが面倒なんですけど。
0775Name_Not_Found
垢版 |
2018/02/20(火) 18:35:21.09ID:rZ442w9v
>>774
ありがとうございます。

別の質問なんですけど
table の tbody に入っているデータを
localStorageに保存したあとで

ページを開き直した後に
localStorageから呼び出して
同じ形式で再表示したいんですけどどうすれば良いんでしょう?

storage.data = document.getElementByID("toboyのID")
で保存して
appendChild(storage.data)
とかやってもうまく行かないんですけど

forループかなんかつかって1つづつ要素を createChild とかして appendChild() するしかないんですか?
0776Name_Not_Found
垢版 |
2018/02/20(火) 18:39:48.19ID:rZ442w9v
訂正
storage.data = document.getElementByID("toboyのID")

storage.data = document.getElementById("tbodyのID")
0777Name_Not_Found
垢版 |
2018/02/20(火) 18:45:12.12ID:???
文字列値以外も保存できたんか?
0780Name_Not_Found
垢版 |
2018/02/20(火) 20:31:51.05ID:rZ442w9v
>>778
プロパティ構文、ブラケット構文、メソッド構文とあるようなので問題ないようです。

>>777
あぁ、それ本に書いてたなぁと思って調べたら
オブジェクトはJSON.stingiy/parseつかえってかいてたので試したけど
駄目っぽいですね。

一つ一つデータをオブジェクトかなにかで保存して
それを取り出して一つ一つcreateElement/appendChildしていくしか無いっぽいですかね。

だれか妙案あれば引き続きよろしくお願いします。
0781Name_Not_Found
垢版 |
2018/02/20(火) 21:14:37.44ID:???
>>779
知らんかった!恥ずかしい

>>780
こんなかんじでどうじゃろ
var storage = localStorage;
//保存
storage.data = document.getElementById("tbodyのID").innerHTML;
//復元
document.getElementById("tbodyのID").innerHTML = storage.data;
0782Name_Not_Found
垢版 |
2018/02/20(火) 21:20:22.46ID:rZ442w9v
>>781
あぁ、それ良いかもですね!
あとで試してみます。
0783Name_Not_Found
垢版 |
2018/02/21(水) 07:32:20.17ID:???
LocalStorage って、HTML を保存するものじゃないだろ

どちらも文字列の、key : value 型だろ
0784Name_Not_Found
垢版 |
2018/02/21(水) 08:10:00.57ID:???
ふーん、じゃ>>781がダメならオブジェクトをJSON.stringifyして保存するのも禁止な。
0785Name_Not_Found
垢版 |
2018/02/21(水) 09:33:02.16ID:???
イベントリスナ無視していいなら
innerHTMLを出し入れしてもただの文字列でしょ、問題はないんじゃね
なんか問題あるっけ
0786Name_Not_Found
垢版 |
2018/02/21(水) 11:24:19.58ID:???
ない。>>783がinnerHTMLの戻り値が文字列だと理解してないだけ。だからバカにされている。
0787783
垢版 |
2018/02/22(木) 21:10:28.01ID:???
普通、HTML タグなど、保存しないだろ。
なんで、そんな表示情報を保存するねんw

保存するのは、アプリに必要なデータだろ

key : value
アプリに必要な、データの項目と値
0788Name_Not_Found
垢版 |
2018/02/23(金) 00:15:24.12ID:???
今回はtableの保存だからな
HTMLのままが駄目と言っちゃ
縦横長+配列に分割することになるんだろうけど
そうなったらJSON化もあんまりスマートでないのでIDB使おうかとかも言えるしな

まあ、大きなアプリで沢山入出力するなら
そこ抽象化して丁寧にやるのもいいけど
簡素なものには適当な対応でHTML突っ込んで戻すくらいで良いんじゃないかと思うよ
0789Name_Not_Found
垢版 |
2018/02/23(金) 02:35:44.73ID:???
>>787
で?復元時にはバラバラにしたデータからまた元のhtmlの文字列組み直すのか?それとも一つずつcreateElement繰り返して挿入か?w
どっちにしろバカなんじゃねーのオメー
えんぴつを使わないアメリカかよwww
0790Name_Not_Found
垢版 |
2018/02/23(金) 03:19:50.24ID:???
>>789
でも君プログラムのアーキテクチャについて無知じゃん
0791Name_Not_Found
垢版 |
2018/02/23(金) 03:21:44.81ID:???
っていうか、たったそれだけのことで悩んでどうするんだって気がするけどねw

値からテーブルを作るコードはデータの部分を除いてたったの6行でできる。
(アロー関数を使えばもっと減らせる)

https://jsfiddle.net/1uopxycn/

var data = [
 [{text: 1, colspan:2},{text: 3}],
 [{text: 1},{text: 2},{text: 3}],
 [{text: 1},{text: 2},{text: 3, style: 'color:red'}],
];

var rows = data.map(function(row) {
 return $('<tr/>').append(row.map(function(attrs) {
  return $('<td/>', attrs);
 }));
});
$('#table').append(rows);
0792Name_Not_Found
垢版 |
2018/02/23(金) 04:55:47.88ID:???
スマートかどうか、仕様的に許されたことかどうか、この2つは別問題

1行で終わる話
0793Name_Not_Found
垢版 |
2018/02/23(金) 09:06:27.41ID:???
テーブルの部分をコンポーネントにしてそっちに配列読み込みの機能を持たせるべきだと思う
0794Name_Not_Found
垢版 |
2018/02/23(金) 09:14:57.35ID:???
ネズミ倒すのに戦車が必要とか組織再編が必要とか言い出す兵隊、降格です。
0795Name_Not_Found
垢版 |
2018/02/23(金) 09:17:30.10ID:???
javascriptを使ってネズミを駆除
0796Name_Not_Found
垢版 |
2018/02/23(金) 09:22:25.98ID:???
$('#table').append(data.map(function(row) {
 return $('<tr/>').append(row.map(function(attrs) {
  return $('<td/>', attrs);
 }));
}));
0797Name_Not_Found
垢版 |
2018/02/23(金) 09:42:12.16ID:???
つーかHTMLをそのままデータにすると柔軟性がなくなるよ。
後からHTMLをかえたくなったときとかね

テンプレートにデータを流し込んでビューを作るってことを
やっている人なら理解できると思う

そもそもデータとして参照する時HTMLを解析しなければいけなくなる

仕様的に許されているからOKと考えるんじゃなくて
後々のメンテナンス性なんかも考えらるようでなければダメ
0798Name_Not_Found
垢版 |
2018/02/23(金) 09:44:05.49ID:???
ちなみにjQueryの例を出したけどデータが多くなるとさすがに重くて
lodashとかにあるテンプレートエンジンの機能を使って
文字列として処理したほうが速い
attrsの部分がちょっと大変だけどね
0799Name_Not_Found
垢版 |
2018/02/23(金) 11:56:08.52ID:zjNZIwXS
innerHTMLつかった書き換えはセキュリティ上よくないからあんま使うなってよんだけど
0800Name_Not_Found
垢版 |
2018/02/23(金) 12:17:35.43ID:???
そりゃどういう時どうして危険か理解できないなら使って問題ないか問題か自分で判定できないだろうから一律使用しないという方針にするしかないな。哀れw
0801Name_Not_Found
垢版 |
2018/02/23(金) 12:42:38.11ID:???
javascriptはセキュリティ上よくないから使っちゃいけないな

ある意味、真理ではあるが
0802Name_Not_Found
垢版 |
2018/02/23(金) 13:09:29.48ID:???
tableじゃ無くてflexboxにすると多少抽象度と、コードのシンプルさと、パフォーマンスが担保できると思う
0803Name_Not_Found
垢版 |
2018/02/23(金) 13:49:22.23ID:???
アクセシビリティを担保できなくなる
0805Name_Not_Found
垢版 |
2018/02/23(金) 14:41:00.06ID:???
それが一番簡単でアクセシビリティも高い
0806Name_Not_Found
垢版 |
2018/02/23(金) 15:40:23.48ID:???
テーブルセルの幅の取り方の挙動をflexで再現できたらいいのになっておもうことがある
区切り線付きの横並びの要素とかで
0807Name_Not_Found
垢版 |
2018/02/23(金) 16:15:33.24ID:???
gridで無理なんか?知らんけど。
0808Name_Not_Found
垢版 |
2018/02/23(金) 18:08:07.84ID:???
基本的にアプリは、MVC で作る

Model(データ)と、View は分離させる。
View は、しょっちゅう変わるから、Modelは、View に依存させない

>>799
異なるドメインから読み込んだものや、素性の知れない者が作ったものを、
innerHTML で読み込んで実行すると、何されるか分からないので、危険

自分自身で作ったものだけで、ハッキングされていないなら、まあ大丈夫かな
0810Name_Not_Found
垢版 |
2018/02/24(土) 16:35:23.24ID:ZwKHpr8s
javascriptの知識一通り合ったらjQueryってすぐおぼえられるもんなん?
20時間くらいでいける?
0811Name_Not_Found
垢版 |
2018/02/24(土) 16:39:50.42ID:???
>>810
ただのライブラリだからすぐに覚えられる20時間もいらん。
本気で1時間やればもうDOM APIは使いたくなくなる。
0812Name_Not_Found
垢版 |
2018/02/24(土) 16:46:08.13ID:???
DOM APIつかってループで繰り返し要素を作ったり変更したり
したことがあるならjQueryの簡単さに感動するだろうな
0813Name_Not_Found
垢版 |
2018/02/24(土) 16:59:21.24ID:???
正規表現リテラルって
別に普通にシングルクォートで囲ってパターン文字列として書いてもいいんですよね
0815Name_Not_Found
垢版 |
2018/02/24(土) 19:00:58.00ID:ZwKHpr8s
jQueryってDOM操作特化なの?
0816Name_Not_Found
垢版 |
2018/02/24(土) 19:16:49.06ID:???
>>815
そうだよ。ライブラリってのは普通何か目的があって
その目的をうまくやるために作られる。
なんにでも使えるライブラリとかそいういうのゴミだから
0817Name_Not_Found
垢版 |
2018/02/25(日) 11:42:32.95ID:+FLdsO/Y
>>781
できました。
ありがとうございます。
とりあえずはコレでいきたいと思いますが、
他の方の指摘にありますし
データ処理には興味あるので勉強としてデータを構造的に保存する方法も模索していこうと思います。


>>793
データは2次元配列に格納していけばよいこいうことでしょうか
コンポーネントというのはどういうことなんでしょう?

>>802
flexboxにするいうのは
<p>かなんかに各データポイントをいれて
display: flex; flex: columnにして
それを行方向に積み重ねていくって感じでしょうか?

>>808
JavaScriptデザインパターン
https://www.amazon.co.jp/dp/toc/487311618X/

この本に書いてそうなので読んでみます。
ヒントありがとうございます!
0818Name_Not_Found
垢版 |
2018/02/25(日) 12:33:31.82ID:???
画像を真ん中に配置したいのですが真ん中に配置されずに困っています

var imgTag = document.createElement('img');
imgTag.setAttribute('src', fugafuga);
imgTag.setAttribute('title', hogehoge);

setAttributeを使用し画像を真ん中に設置する方法はありません出ようか?
0819Name_Not_Found
垢版 |
2018/02/25(日) 13:09:17.86ID:???
>>818
setAttributeなら
style属性に
"margin-right:auto; margin-left:auto"
でいいんじゃない?

外部スタイルシートなら
cssに
.someName {
whatever: anything
}
JSで
imgTag.className ='someName'
0820818
垢版 |
2018/02/25(日) 14:14:52.80ID:???
>>819
多分ID変わってます
ありがとうございます
頑張ってみます!
0821Name_Not_Found
垢版 |
2018/02/25(日) 14:29:05.50ID:???
>>817
書名紛らわしいが、一般に「JavaScriptパターン」のほうが良書と評価されてるよ。ご参考まで。
0822Name_Not_Found
垢版 |
2018/02/25(日) 21:12:43.79ID:tH4r9gsg
macOS High Sierra 10.13.2
safari 11.0.2です。

実現したい機能:Youtubeの自動再生ボタン(動画を再生した後に次の動画に自動遷移する機能)をUserScriptで自動クリックしてオフにする。

Youtubeの自動再生機能はデフォルトではオンで、オフにする事もできるのですが、その設定はCookieで保存されるようです。
しかし私は普段、プライベートモードでブラウジングをします。
そこで上記の機能をTampermonkeyのUserScriptで実現しようとしました。
私はjavascriptに関しては完全な初心者なので、ググって出てきたソースを改変しましたが、機能しませんでした。
おそらく、的外れなことをしているんだと思います。
以下のソースについてアドバイス、ここがおかしい等のツッコミをいただけたら幸いです。
// ==UserScript==
// @name Youtube自動再生ブロック2
// @namespace http://tampermonkey.net/
// @version 0.2
// @description try to take over the world!
// @author You
// @match https://www.youtube.com/*
// @grant none
// ==/UserScript==

(function() {
'use strict';
setInterval(function() {
var button = document.querySelector("style-scope ytd-compact-autoplay-renderer");
if (!button || button.style.display == "none") return;
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 0, null);
button.dispatchEvent(evt);
}, 1000);
})();
0823Name_Not_Found
垢版 |
2018/02/25(日) 21:50:46.55ID:???
>>822
>自動再生ボタンをUserScriptで自動クリックしてオフに

意図がわからん
ボタンを自動クリックしたら再生が始まってしまうではないか?

最近のブラウザは勝手に自動再生しないように環境設定できるのがあるぞ
0824Name_Not_Found
垢版 |
2018/02/25(日) 22:46:33.87ID:???
ツベのプレイヤーって特殊だよね
javascriptで操作できんのか
0825Name_Not_Found
垢版 |
2018/02/25(日) 23:39:34.21ID:tH4r9gsg
822です。レスありがとうございます。
>>823私の意図している”自動再生”は、ページを開いた時に再生ボタンをクリックをしなくても動画が再生される機能のことではなく、
動画を再生し終えた後に10秒ほどのカウントダウンがあり、さらにその後別の動画に自動リダイレクトされる機能の事です。
質問文がわかりにくかったようで、申し訳ないです。
スクショを用意しました。
https://imgur.com/a/UDsCL
0826Name_Not_Found
垢版 |
2018/02/26(月) 00:20:30.30ID:???
>>825
ほらよ。直してやったで

// ==UserScript==
// @name Youtube自動再生ブロック2
// @namespace http://tampermonkey.net/
// @version 0.2
// @description try to take over the world!
// @author You
// @match https://www.youtube.com/*
// @grant none
// ==/UserScript==

(function() {
'use strict';
setInterval(function() {
var button = document.querySelector("paper-toggle-button[checked]");
if (!button || button.style.display == "none") return;
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 0, null);
button.dispatchEvent(evt);
}, 1000);
})();
0827Name_Not_Found
垢版 |
2018/02/26(月) 00:20:55.28ID:???
ついでにjQueryを使ったバージョンな。
覚えるとサクッとできるぞ。

// ==UserScript==
// @name Youtube自動再生ブロック2
// @namespace http://tampermonkey.net/
// @version 0.2
// @description try to take over the world!
// @author You
// @match https://www.youtube.com/*
// @grant none
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js
// ==/UserScript==

(function() {
'use strict';
setInterval(function() {
$("paper-toggle-button[checked]").click();
}, 1000);
})();
0828Name_Not_Found
垢版 |
2018/02/26(月) 00:23:17.60ID:???
補足しておくと最初のやつはセレクタがよく分からんやつだった。
適切と思われるものに直した後、checkedがついているときだけoffにするようにした

またjQueryバージョンは、buttonの存在チェックをしていないが、
jQueryっていうのは、セレクタで見つかった要素全てにメソッドを実行する(この場合はclick)
というものだから、要素が見つからなければ何もしないので存在チェックが不要になる
0829Name_Not_Found
垢版 |
2018/02/26(月) 00:30:44.50ID:???
なお、一行でも書ける
setInterval(() => $("paper-toggle-button[checked]").click(), 1000);
0830Name_Not_Found
垢版 |
2018/02/26(月) 01:05:40.91ID:anD7k8Wx
822です。
>>826,>>827,>>828,>>829
動作を確認できました。助かりました。
欲しい機能をさらって実現出来たら最高ですよね!
本当にありがとうございました。
Javascript勉強します。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況