20190630-2

関連記事

デフォルト画像
2017.07.15
今日のハマりごと、lity.jsと右クリック禁止

自分の力での解決は不可能でした 今週はハマりごとが大量にありましたけど、クソ面倒だったのは多分今日。 動画周りのお話です。 備忘録代わりに書きますが、詳細な技術面の話は一切しません。 自分で理解できてないことが多いし、再現しろと言われてもできないからです。 HTML5からなのかは知識不足で知らないけど、videoタグがありますよね。 直接mp4とかの動画を埋め込んでくれる便利なやつです。 その辺で大分やられました、主に5時間ほど。 今日やろうとしたのは、動画の埋め込み。 やったこととハマったことは以下の通り。 ・動画を埋め込む、埋め込みにはLity.jsを使う Lity採用理由:colorboxがクソダサだからもっとシンプルなやつっていう指示 ・Chromeはvideoタグにダウンロードボタンが付いたのでそれを削除 理由:多分ダウンロードをされたくないから、Chrome氏ね ついでに右クリックも禁止、ダウンロードされるから ・PC/Android/iPhoneすべてで問題なく見れること 理由:それなりにデカイ案件だったし、そもそもその三機種で見れるのは最低条件 主に下2つでハマりました。 とりあえずまずは一番下のやつから Android PCとiPhoneは問題なく見れたんですよね。 前者はLityのボックスで、後者はフルスクリーンで。 んだけども、なぜかAndroidは見れないわけですよ。 色々と調べてみると、どうやら4系は標準メディアプレーヤーがゴミカスな模様。 Lityで頑張って出そうとするのになぜかダウンロードをしはじめる始末です。 そのくせただvideoタグで埋め込むだけだと再生ボタンすら表示させないというクソ仕様。 誰だよAndroid4系を開発したのは、開発者出てこい。 仕方がないので、Androidに関してはJSで対処しました。 やったのはPlay()とPause()を交互に繰り返すこと。  (多分書き方は合ってる) って感じで、videoにidを振って、クリックしたときに関数を呼びました。 JS側では function play_movide() { } みたいな感じで作った関数の中で、 ・クリックされた要素のidを取得 ・それがPlay中ならPause() ・それがPause中ならPlay() ってのをやっただけです。 Androidくんの場合だけで適用され、表示的にはフルスクリーンにならずにその場で再生されます。 タップをすると再生、もう一度タップで停止。 便利なのは、HTML5のおかげか、再生中と停止中の状態をJSで取得できることですね。 なのでif文でPlayかPauseかを判断することができるわけですよ。 このことに気づくまで3時間ぐらい掛かりました。 オイオイオイ死ぬわ俺とか思いながらやってましたよ? Chromeのダウンロードボタン Chromeは標準のメディアプレーヤーに、56?ぐらいからダウンロードボタンがつきました。 それをクリックすることで簡単に動画を落とすことができます。 クソ仕様です、クソ仕様。 何がクソって、そういうのは基本的にしてほしくないからです。 そもそもいらねえでしょ、そんな機能。 まあそんな文句ばかりは言えないので、対処のお話です。 何やら調べてみると、 ・CSSでwebkitを用いてダウンロードボタンを消滅させる(無理やり消失) ・ver58から、videoタグにcontrolListだかでnodownloadを指定すると消えるようになった の二通りがあるようです。 後者はすごく便利ですが、なんと58系のChromeからしか適用されません。 それにしたって57以下はコンマ以下の%の人間しか使ってないから問題ないんですけどね。 で、「だったら付けて解決じゃねえか」って思うかもしれませんが、そうは問屋が卸さない。 ここに使っていたプラグイン、Lity.jsが立ちはだかります。 という本題に入る前に、ついでのお話。 もう一つの指示があって、それは右クリックを禁止するというものです。 いくらダウンロードが消えたといっても、右クリックされるようでは簡単にダウンロードはされます。 開発者ツール開かれたら簡単に落とされますけど、そこまでする人間はそういない。 右クリック禁止のやり方については調べてください。 この2点、 ・nodownloadかwebkitでボタンを消す ・右クリックを禁止する ということをしようとするとLity.jsが邪魔するわけです。 何が邪魔かって、クリックするまではそのオブジェクトが存在しないんです。 最初は ってあるんだからbodyかvideoにかけりゃええやろって思いました。 webkitだってvideo::webkit~でなんとかなるやろって思いました。 はい違います。 ぼくも良くは知りませんが、Lity.jsは画面内でiframeとbodyを生成するんですよね。 要は別画面を生成して、その中に動画をcolorbox化して読み込むみたいな? 読み込まれるのは標準プレーヤーなんですが、iframe内のせいでJSをが入り込めません。 なんていうか、iframeの中をJSを操作することってできないらしいです。 CSSは理由がよくわからん。 要は、生成されてないんだからそのDOM操作できねえよバーカ! iframeだからJSで疑似要素を操作することもできねえよアーホ! って感じでハマりました。 助けてもらって解決しましたが。 解決案は、Lity.jsを使用するために付けるdata-lityを利用すること。 これを持ったDOMをクリックするときにfunction()して色々やります。 クリック関数になるので、生成されたiframe内からvideo要素を取得。 そこらへんで右クリック禁止したり、removeAttributeしたり、setAttributeしました。 という感じで解決。 氏ねって思ったのはLity.jsが想像以上に難解な仕様をしてくれたからです。 素直にHTML上で設置したvideoタグを使えって思いますよほんとに。 なにはともあれ、お陰様でダウンロードボタンを消すこともできました。 もーまんたい!もーまんたい! ほとんどぼくの力じゃないけど!! もうこんなんはコリゴリだよ、氏ね。 それでは今日はここらでサヨウナラー

2019.12.15
財布落とした、同情してくれ金もくれ

やあ!!! ハローワールド!!!財布を落としたsaikoくんだよ!!!気分が滅入ってるよ!!!! 今日はね、ドンキに遊びに行ったんだ。予定が入ってたからね、時間つぶしをしてたんだよ。 用事の時間になったからね、外に出たんだ。友達と合流して暫くしてからね、気づいたんだよね。 財布がなかったね? 財布どこ?おうちかえう!!おうちどこ?財布探す!!! なかったぁ…。財布なかった…。 まだあわあわわ展開あわわ まだ慌てるような時間じゃない。震える手でクレジットカード会社へ電話をかける。 「お金の入ったクレジットカードの入った財布を落としたんでしゅ…」「止めますね」 「キャッシュカードがお金が入ったお金があわわわわ財布を落としましたあわわわ」「止めます」 慌てずゆっくり落ち着いて!クレジットカード会社と銀行のサポートセンターへ電話をかけた! 「さすがだぞ! 財布を落としたときの 対応を ばっちり わかって いるんだな!」 慰めてくれホップくん…。生きてるだけでも偉いなって俺を褒めてくれ…。 放心呆然自失のお時間 ぼくは優秀なアークスなので、呆然としながらもメリクリは終えました。しらねーよ!!!!!!!!!!!!! というわけで、結構なお金の入った財布が消滅しました。皆さん慰めてください。具体的にはお金を恵んでください。 中に入ってたのは ・金(←結構大事!)・クレジットカード(←とても大事!)・キャッシュカード(←死)・ネカフェの会員証(←それをなくすなんてとんでもない) でした。保険証と運転免許証は別で管理してるのでセーフ!これでこいつらもなくしてたら完全に死んでましたね。明日会社休むレベル。 どなたか新潟ドンキ周辺で財布を見つけた方がいらっしゃいましたらこちらのブログのコメント欄までご報告をお願いいたします。あなたのおうちへダイナミックエントリーかまします。中に金が入ってなかったらわかってるな!? 警察には届け出をしたので、きっと暫くしたら戻ってくると思います。最悪財布だけは返してくれや、な? お前らも変な落とし方するなよな!落としたら笑ってやるからうち来いよ!

デフォルト画像
2019.01.16
夜10時以降は人間が仕事できる時間じゃない

そこまで働ける体にはできていない 最近仕事が落ち着いてきたな、と思ったらなぜか22時まで仕事していた人間です。 ギリギリ仕事ができる時間に終わりました。 常々思いますが、皆働きすぎなんですわ。 一昨年とか22時以降まで平然と働いてた気がする。 でもその分お賃金はもらってましたけど。 最近は平日に長時間働くもんでねえ!って思い始めてしまったため、平日は諦めて休日に出ることのほうが多くなりつつあります。 正直休日に出たほうが作業が捗るという恐ろしい事実。 まあ、仕事の横入りをされることもないし、誰もいないしで集中できることは確かなんですよね! 平日はとっとと帰って緊急待ちしたほうが利口だと思うんですよ。 仕事が多すぎる?知らないよそんなの。 なんか知らんが仕事が来た 身内経由で、お仕事を受注する可能性が出てきました。 単なるバイトですが。 結構杜撰な開発をしたせいで、色々と酷いことになってるページを直してくれ、みたいな。 バイト代は基本言い値で!みたいなことを言われたんですが、どうしたらいいんでしょうね。 こういうときフリーで働いてる人はポンと見積もりが出せるんでしょうけど、ぼくは会社員なんですよね。 フリーランス向けの仕事を見てると、通常ウチなら3万でやるような仕事を5千で引き受ける必要があったりします。 個人にそのまま振り込まれることを考えると、(必要経費考えても)会社とトントンぐらいかなとは思うんですが、それでもね…。 なので身内には悪いんですが、ぼくに頼むよりもフリーで適当な人を探したほうが早かったりするというのも事実です。 まあ当然メリット・デメリットはあるもんで、ぼくに頼むとなると逃げられる心配が少ないってのがあります。 だってぼくは逃げられませんので。 「あいつに頼んでおけばそう酷いことにはならんだろ!」みたいなね? 要は信用ってやつではあるんですけど、その辺フリーに頼んだりした経験がないと手が出しにくいかもしれませんね。 ぼくはそういう立場になったことがないのでわからないんですけども。 そんなこんなで、(もしかしたら)個人受けの仕事が来る!わけです。 他人が作ったページイジるの死ぬほど嫌ですけど、お金を貰えるならそりゃやるよね! だから早くお仕事くだちゃい。 お仕事お待ちしております!(待ってない) それでは今日はここらでサヨウナラー