のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,490,717人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレ+ JavaScript の質問用スレッド vol.131 +

    JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    801 : Name_Not - 2018/02/23(金) 09:44:05.49 ID:???.net (+5,-27,-65)
    ちなみにjQueryの例を出したけどデータが多くなるとさすがに重くて
    lodashとかにあるテンプレートエンジンの機能を使って
    文字列として処理したほうが速い
    attrsの部分がちょっと大変だけどね
    802 : Name_Not - 2018/02/23(金) 11:56:08.52 ID:zjNZIwXS.net (+57,+26,-45)
    innerHTMLつかった書き換えはセキュリティ上よくないからあんま使うなってよんだけど
    803 : Name_Not - 2018/02/23(金) 12:17:35.43 ID:???.net (+57,+29,-33)
    そりゃどういう時どうして危険か理解できないなら使って問題ないか問題か自分で判定できないだろうから一律使用しないという方針にするしかないな。哀れw
    804 : Name_Not - 2018/02/23(金) 12:42:38.11 ID:???.net (+57,+29,-22)
    javascriptはセキュリティ上よくないから使っちゃいけないな

    ある意味、真理ではあるが
    805 : Name_Not - 2018/02/23(金) 13:09:29.48 ID:???.net (+20,-29,-49)
    tableじゃ無くてflexboxにすると多少抽象度と、コードのシンプルさと、パフォーマンスが担保できると思う
    806 : Name_Not - 2018/02/23(金) 13:49:22.23 ID:???.net (+31,+8,-29)
    アクセシビリティを担保できなくなる
    807 : Name_Not - 2018/02/23(金) 13:58:04.89 ID:???.net (-6,-29,-3)
    もうtext/plainでいいよ
    808 : Name_Not - 2018/02/23(金) 14:41:00.06 ID:???.net (+57,+29,-4)
    それが一番簡単でアクセシビリティも高い
    809 : Name_Not - 2018/02/23(金) 15:40:23.48 ID:???.net (+61,+29,-53)
    テーブルセルの幅の取り方の挙動をflexで再現できたらいいのになっておもうことがある
    区切り線付きの横並びの要素とかで
    810 : Name_Not - 2018/02/23(金) 16:15:33.24 ID:???.net (-6,-29,-15)
    gridで無理なんか?知らんけど。
    811 : Name_Not - 2018/02/23(金) 18:08:07.84 ID:???.net (+93,+29,-91)
    基本的にアプリは、MVC で作る

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

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

    自分自身で作ったものだけで、ハッキングされていないなら、まあ大丈夫かな
    812 : Name_Not - 2018/02/23(金) 18:11:48.00 ID:???.net (+6,-29,-15)
    >>809
    Houdini Layout API
    813 : Name_Not - 2018/02/24(土) 16:35:23.24 ID:ZwKHpr8s.net (+58,+29,-39)
    javascriptの知識一通り合ったらjQueryってすぐおぼえられるもんなん?
    20時間くらいでいける?
    814 : Name_Not - 2018/02/24(土) 16:39:50.42 ID:???.net (+65,+29,-47)
    >>813
    ただのライブラリだからすぐに覚えられる20時間もいらん。
    本気で1時間やればもうDOM APIは使いたくなくなる。
    815 : Name_Not - 2018/02/24(土) 16:46:08.13 ID:???.net (+57,+29,-57)
    DOM APIつかってループで繰り返し要素を作ったり変更したり
    したことがあるならjQueryの簡単さに感動するだろうな
    816 : Name_Not - 2018/02/24(土) 16:59:21.24 ID:???.net (+49,+21,-31)
    正規表現リテラルって
    別に普通にシングルクォートで囲ってパターン文字列として書いてもいいんですよね
    817 : Name_Not - 2018/02/24(土) 17:04:45.85 ID:???.net (+41,+23,+0)
    だめ
    818 : Name_Not - 2018/02/24(土) 19:00:58.00 ID:ZwKHpr8s.net (+16,-22,-32)
    jQueryってDOM操作特化なの?
    819 : Name_Not - 2018/02/24(土) 19:16:49.06 ID:???.net (+58,+29,-22)
    >>818
    そうだよ。ライブラリってのは普通何か目的があって
    その目的をうまくやるために作られる。
    なんにでも使えるライブラリとかそいういうのゴミだから
    820 : Name_Not - 2018/02/25(日) 11:42:32.95 ID:+FLdsO/Y.net (+79,+29,-155)
    >>784
    できました。
    ありがとうございます。
    とりあえずはコレでいきたいと思いますが、
    他の方の指摘にありますし
    データ処理には興味あるので勉強としてデータを構造的に保存する方法も模索していこうと思います。


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

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

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

    この本に書いてそうなので読んでみます。
    ヒントありがとうございます!
    821 : Name_Not - 2018/02/25(日) 12:33:31.82 ID:???.net (+16,-30,-115)
    画像を真ん中に配置したいのですが真ん中に配置されずに困っています

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

    setAttributeを使用し画像を真ん中に設置する方法はありません出ようか?
    822 : Name_Not - 2018/02/25(日) 13:09:17.86 ID:???.net (+38,-30,-94)
    >>821
    setAttributeなら
    style属性に
    "margin-right:auto; margin-left:auto"
    でいいんじゃない?

    外部スタイルシートなら
    cssに
    .someName {
    whatever: anything
    }
    JSで
    imgTag.className ='someName'
    823 : 818 - 2018/02/25(日) 14:14:52.80 ID:???.net (+63,+29,-4)
    >>822
    多分ID変わってます
    ありがとうございます
    頑張ってみます!
    824 : Name_Not - 2018/02/25(日) 14:29:05.50 ID:???.net (+67,+29,-31)
    >>820
    書名紛らわしいが、一般に「JavaScriptパターン」のほうが良書と評価されてるよ。ご参考まで。
    826 : Name_Not - 2018/02/25(日) 21:50:46.55 ID:???.net (-8,-29,-34)
    >>825
    >自動再生ボタンをUserScriptで自動クリックしてオフに

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

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

    // ==UserScript==
    // @name Youtube自動再生ブロック2
    // @namespacehttp://tampermonkey.net/
    // @version 0.2
    // @description try to take over the world!
    // @author You
    // @matchhttp://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);
    })();
    830 : Name_Not - 2018/02/26(月) 00:20:55.28 ID:???.net (+23,-30,-212)
    ついでにjQueryを使ったバージョンな。
    覚えるとサクッとできるぞ。

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

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

    またjQueryバージョンは、buttonの存在チェックをしていないが、
    jQueryっていうのは、セレクタで見つかった要素全てにメソッドを実行する(この場合はclick)
    というものだから、要素が見つからなければ何もしないので存在チェックが不要になる
    832 : Name_Not - 2018/02/26(月) 00:30:44.50 ID:???.net (+20,-30,-70)
    なお、一行でも書ける
    setInterval(() => $("paper-toggle-button[checked]").click(), 1000);
    833 : Name_Not - 2018/02/26(月) 01:05:40.91 ID:anD7k8Wx.net (+36,+29,-42)
    822です。
    >>829,>>830,>>831,>>832
    動作を確認できました。助かりました。
    欲しい機能をさらって実現出来たら最高ですよね!
    本当にありがとうございました。
    Javascript勉強します。
    834 : Name_Not - 2018/02/26(月) 01:28:47.36 ID:???.net (+9,-30,-196)
    document.querySelector("paper-toggle-button").checked = false

    これでもいける?

    createEvent("MouseEvents");
    evt.initMouseEvent();
    button.dispatchEvent(evt);

    このあたり何やってるんだろう
    質問者じゃないけど詳しい人教えて
    835 : Name_Not - 2018/02/26(月) 01:39:57.14 ID:???.net (+4,-29,-234)
    >>834
    行けるかもしれないけど実装次第だろうね

    まずpaper-toggle-buttonというタグ(カスタムタグ?)は
    動き見てると非同期で表示されてる感じがする。

    なので、ページ読み込んだすぐには存在しておらずsetIntervalで
    1秒おきにチェックしてるおり、paper-toggle-buttonが
    nullの場合になにもしないようになってる。
    こういう所、jQueryは存在しなくてもエラーにならない設計なので便利

    クリックは実際のマウスクリックをエミュレートしており、
    実際にマウスでクリックしたのと同じ動きをする。
    YouTube側の実装がcheckedだけを見てるなら、それで動くかもしれないけど
    他にクリックされた時に何かしている可能性があるからクリックを
    エミュレートするほうが確実

    本気で解析すればわかると思うけど、こういうハックでそんな面倒なことしたくない
    ささっと解決したいね。
    837 : Name_Not - 2018/02/26(月) 04:46:12.86 ID:???.net (+18,-9,-45)
    おいおい、、、、頼むからもうcreateEvent系は使うな
    コンストラクタでスマートに作れるだろ
    838 : Name_Not - 2018/02/26(月) 05:36:10.88 ID:???.net (+52,+29,+0)
    じゃあ作ってくれよ
    839 : Name_Not - 2018/02/26(月) 06:28:00.10 ID:???.net (+7,-30,-138)
    clickイベントを発行するだけなら.
    document.querySelector("paper-toggle-button").click()
    でいける
    jQueryではなく標準JavaScriptでサポートしてる

    ただし<input type="image">の_xや_yを指定したいとかなら、
    createEvent()で細かく指定する必要がある
    840 : Name_Not - 2018/02/26(月) 08:39:38.20 ID:???.net (-6,-29,-2)
    jquwryは他所でやれ
    841 : Name_Not - 2018/02/26(月) 09:31:38.10 ID:???.net (+84,+27,-12)
    jq広めてどんな得があるというのか
    本が売れるとか?アフィが捗るとか?
    842 : Name_Not - 2018/02/26(月) 11:31:45.54 ID:???.net (+57,+29,-36)
    変に謎関数を自作されるより既存のちゃんとしたライブラリ使ってくれる方が後の人が助かる
    843 : Name_Not - 2018/02/26(月) 11:37:17.85 ID:???.net (+52,+29,-13)
    とりあえずjqueryは他いけな
    844 : Name_Not - 2018/02/26(月) 12:02:37.73 ID:???.net (-1,-30,-50)
    >>839
    イベントは
    new Event(nameString,optionObject)
    の形で作れ
    createは非推奨
    845 : Name_Not - 2018/02/26(月) 16:24:03.79 ID:???.net (+17,-30,-39)
    >>820-824
    Stoyan Stefanov 著
    JavaScriptパターン ―優れたアプリケーションのための作法、2011
    オブジェクト指向JavaScript、2012

    JavaScriptデザインパターン、Addy Osmani, 2013
    847 : Name_Not - 2018/02/27(火) 00:25:56.22 ID:???.net (+69,+29,-55)
    >>841
    jQueryはすでに広まってるよ
    どんな特があるかは、広めて特があるんじゃなくて使うと特がある。
    今回みたいなのはささっと実装できるという得がね
    俺の得じゃなくて、使うみんなが得をする
    848 : Name_Not - 2018/02/27(火) 00:30:54.05 ID:???.net (+5,-30,-124)
    >>821
    > var imgTag = document.createElement('img');
    > imgTag.setAttribute('src', fugafuga);
    > imgTag.setAttribute('title', hogehoge);

    だと

    $('<img>', {src: fugafuga, title: hogehoge});

    ね?
    850 : Name_Not - 2018/02/27(火) 03:37:44.33 ID:???.net (+94,+29,-15)
    グッドパーツは世界的に超有名な本だけどさすがに古いから読む場合は現在どうなってるか気を付けながら読んで
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について