🧼 コードから click イベントを発火する手法 `el.click()` および `el.dispatchEvent(new Event('click'))` における挙動の差 / バブリング指定について

とある web ページに置いてあるボタンをコードから自動でクリックするブックマークレットをつくろうとした。 クリックリスナー登録先要素が不明だったので、それっぽいボタン要素(el)に目星をつけて click イベントを発火。 ここで書き方により挙動の差異が…

markdown-wasm 利用時の最小記述

<html lang="ja"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <body> <pre class="md-input"> # title * list * list * list [https://rkgk.b…</pre></body></html>

VueのCDN版を使いつつ、TypeScriptの型定義も反映させたい

既存のTypeScriptプロジェクトにnpmのvueいれて import {createApp} from 'vue' でimport createApp({}).mount("#app") でマウント ➡ #appの中身が空っぽになってしまう。 CDN版だとDOMの中身を保ったままVueアプリ化されるんだけど…挙動が違った。 もともと…

Object.assign 活用

Object のマージ const ab = { a: 1, b: 2 } const cd = { c: 3, d: 4 } Object.assign(ab, cd) // {a:1,b:2,c:3,d:4} ab // {a:1,b:2,c:3,d:4} 第一引数にあたえた変数に、後続の引数の内容がマージされるミュータブルな処理 変更を避けるには空のオブジェ…

TypeScript ループ内でオブジェクトのプロパティに変数を使ってアクセスしたい場合

CSSをtsで直書きしようとした際に問題発生。 スタイル指定をオブジェクトにしてループまわし、 要素.style[prop] でアクセスしようとしたが、以下エラー。 インデックス式が型 'number' ではないため、要素に 'any' 型が暗黙的に指定されます。 propに型アサ…

絵文字を含む文字列の分割

テキストを一文字ずつ配列にいれて操作する処理をつくっていたら、 "⛄".length // 5 JSON.stringify("⛄".split('')) // '["\ud83d","\udc7b","⛄","\ud83e","\udd69"]' まじか 3文字にならない? 絵文字を含む場合に予期せぬ挙動になることに気づいた Array.f…

変数の再代入はなぜ避けたほうが良いのか、ようやくわかるようになってきた

2020年からjsを書く機会が急増して、これまでいかに初歩的な組み方しかしてこなかったか知った。 2020年の春ごろまではPromiseの使い方も知らなかったし、jQueryなしで書くのはハードル高いと思っていたし…。 人のコード見て顧みる 自分以上に経験少ない方の…

TypeScript HTML要素取得時の型引数指定と型アサーション(キャストのようなもの)

HTML要素をdocument.querySelectorAll()で取得してforEachかけ、要素の属性値を確認しようとしたところ プロパティ 'dataset' は型 'Element' に存在しません。 と怒られた。Element? HTMLElementにキャストとかすればいいのか、と思って検索すると、型アサ…

正規表現の覚え書き

忘れそうなやつをメモ 先読み・後読み たまにしか使わないので混乱する… 先読みは「指定パターンの先(前方)の位置」をあらわし 後読みは「指定パターンの後(後方)の位置」をあらわす 「肯定先読み」という記法の呼び名の語順に沿って一覧 (「先読み肯定…

PHP クラス定数取得

php

クラス定数ってstatic変数みたいに、インスタンス化しなくてもクラスから直でとれるんだ…。 どちらも::で呼び出すの一緒だなと思ってはいたけど。 定数はインスタンス化しないととれないものと思い込んでいた。 余談:静的メンバって呼び方基本とするなら、…

PHP クラスの静的メンバ挙動を通して諸々覚える

php

ダブルコロンのスコープ定義演算子 $foo::BAR とか Foo::$bar とか PHPのコロンふたつの記法、なんとなく得体がしれずスルーし続けてきたが、自作クラスに定数を定義した際はじめて、定数や静的メンバの呼び出しに用いるものと知る。 インスタンスメンバへの…

Promiseの基本的な使い方について

setTimeout 使った処理調整しようとして検索かけてる最中、下記の記事にぶちあたって脱線しました。 setTimeout はダサいぞ。JavaScript Promise を使って処理を順番に実行しよう そういえば Promise ちゃんと理解していなかったっけ…。 基本的な記述 let ex…

5年ぶりの投稿テスト

長らく放置していました。 web制作系のメモをこちらにまとめたくなったので動作のテスト。 はてなダイアリー時代に使用していたんですが、サービス終了ではてなブログに自動移行されていた。 当時はmarkdownでかきて~~と思いながらはてな記法覚えようとし…

レスポンシブ(スマホ用)のコーディングメモ

margin,paddingの%指定は包含ブロック「幅」に対する割合 height,top,bottomや背景画像位置の%指定は包含ブロック「高さ」に対する割合 @media only screen and (max-width: 639px) {} <meta name="viewport" content="width=device-width"></meta>

メモ .htsccessのRewriteでメンテ画面表示

ErrorDocument 503 任意のURL(http://~ もしくは /~ ) RewriteEngine On RewriteCond %{REQUEST_URI} !任意の文字列 RewriteCond %{REMOTE_ADDR} !^000\.000\.000\.000$ RewriteRule ^.*$ - [R=503,L]・リダイレクト後のurl(に含まれる文字列)で判定してル…

audioタグ覚書

想像をはるかに下回るhttp://www.ibm.com/developerworks/jp/web/library/wa-ioshtml5/・対応状況が異なるために複数ファイルが必要 ・ループ再生がスムーズにつながらず、1回再生し終わった時点で音が途切れる iOSでの問題点 ・プリロードの術がない(初回…

for inループの挙動

IE8なんなの var arr =["a","b","c"] for(var i in arr){ alert(i); } // 0 // 1 // 2 // indexOf 4回まわってる上に 最後のやつなんなの 140322追記: IndexOfの正体はArrayのprototypeに追加したIndexOfメソッドだったことが判明 for inループはprototype…

(反省)event.targetのさすものを忘れるな

初歩的過ぎるミス イベントオブジェクトのtargetプロパティで取れるのはイベントが発生したオブジェクトだ 必ずしもイベントリスナーを登録したオブジェクトとは限らない AS3いじりたての頃に散々やったはずなんだけど <ul> <li id="btn"><div>ボタン</div></li> </ul> $("#btn").click( function(e…

(あまり役立たない)IE8で擬似要素の背景を動的に切り替えられない場合

<html> <head> <meta charset="utf-8" > <title></title> <style> #box{width:200px;height:200px;background:#eee;} #box:before{content:"before box";color:#fff;display:block;background:#aaa;width:100px;height:100px;} #box.change:before{background:#ccc} </style> <script src="js/jquery.js"><…</meta></head></html>

Illustrator web用に書き出し時に透明背景にならない

まっさらレイヤーにおいてあるオブジェクトをpngで書き出そうとするも、なぜか白背景。表示>オーバープリントプレビュー が入っていたせいだった。 きったら解決。

PhotoshopCCの移動ツールでCtrl+ドラッグ選択する際の不具合?

移動ツールのCtrl+ドラッグでキャンバス上の選択範囲から複数レイヤーを選択する際、 ロックされたレイヤーグループ内の子レイヤーも選択してしまうおかげで「移動ツールを使用できません。...」のメッセージが出ちゃって移動できない事態に 子レイヤーに直…

エクスプローラ上でファイル名を「.htaccess」にリネームする単純な方法

windowsで.htaccessファイルをいちから作成するとき、ファイル名を .htaccess とすると「ファイル名を入力してください」って怒られちゃうんだけど .htaccess. とすると「拡張子を変更...」のダイアログが出るので、 はい と答えて.htaccessというファイル名…

(自分用)urlからhtmlファイル名を取得し、同名の画像を表示

jQueryにたよってばかりもなんだなとおもい javascriptの文法学習も兼ねて、簡単な仕組みづくりに挑戦しました。その記録さえ残せればと。内容は用途の限られた個人利用の地味なjsです。 よってhtml側の記述や使いどころの説明は省略。覚えたばかりの論理和…

3DSインターネットブラウザーのviewport設定・width=320px未満の場合

3DSインターネットブラウザーの仕様 http://www.nintendo.co.jp/3ds/hardware/features/browser.html 指定がない場合、横幅980ピクセルとしてHTMLをレイアウトします。<meta name="viewport" content="width=320" />をHTMLの<head>...</head>内に指定することで、幅320ピクセルの縮小表示がないHTMLを表示させることが</meta>…

html5コーディングの注意点・section要素

今更になってがっつりhtml5コーディングを学ぶ機会に恵まれました。 一通りは理解できたと思います。細かい部分はこれから。 sectionとarticleの使い分け …みんな迷っていると思う。 そのブロックのみを外部から引用されても意味が通じる場合、articleを使う…

ページ全体の横幅を指定し、指定領域外へはみ出た要素によってスクロールバーがでるのを防ぐ

<html> <head> <meta charset="utf-8" > <title></title> <style> #container{position:relative;overflow:hidden;min-height:1000px;min-width:960px/*任意の横幅*/;} #box{position:absolute;left:960px;width:100px;height:100px;background:#aaa;} </style> </head> <body> <div id="container"> </div></body></html>

initializrの吐き出したソースから学んだこと

http://www.initializr.com/ テンプレート内の記述から学ぶ <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> //A <script>window.jQuery || document.write('<script src="js/vendor/jquery-1.9.1.min.js"><\/script>')</script> //B A) "//"の意味を理解 "/"はルートディレクトリ指定だが、"//"は使ったことありませんでし…

Photoshop スマートオブジェクトとワープ変形

ベクトルスマートオブジェクトと スマートオブジェクトって別物なんですね。http://qtweb.txt-nifty.com/photoshopcs/2010/03/post-43e8.htmlAiからPsにひっぱってきたデータをワープ変形しようとして、できないので気づいた。 編集時にAiが立ち上がるのがベ…

Photoshopでレイヤーを統合して複製

イメージ>複製□レイヤーを統合して複製なんてチェックボックスに初めて気づいた。よくCtrl+Shift+Cして新規キャンバスに張り付けしてたけど、 そうするとデカいファイルのとき困る。

BitmapDataにリンケージするときの注意点

リンケージ設定してあるBitmapDataは、 プロパティでスムージングかける設定にしていても無効になる。asからBitmapDataのsmoothingプロパティをtrueにしてやればOK。画像を差し替えるとリンケージしなおさなきゃいけなくなるから、 自分で作るFlashでは、あ…