javascript

🧼 コードから 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…

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

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

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

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

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…

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

jQueryにたよってばかりもなんだなとおもい javascriptの文法学習も兼ねて、簡単な仕組みづくりに挑戦しました。その記録さえ残せればと。内容は用途の限られた個人利用の地味なjsです。 よって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) "//"の意味を理解 "/"はルートディレクトリ指定だが、"//"は使ったことありませんでし…

window.openで開いたウィンドウ自身から、ウィンドウ名を参照

開いたウィンドウの、windowオブジェクトのnameプロパティに入っているよ window.name とっても初歩的な予感

SWFObjectのFlashVarsで受け取った配列インスタンスは、カンマ区切りの文字列に変換される

jsでflashvarsに配列を格納 var flashvars = { strList:["str1","str2"] }; //flashに渡す変数 flash側で受け取る var FV = loaderInfo.parameters["strList"]; 変数の中身をチェックすると… trace(FV); //str1,str2 ←ここは一緒に見えるんだけど trace(type…