#author("2022-02-18T11:37:57+00:00","default:admin","admin") -[[JSer.info:https://jser.info/]] ... JavaScriptの最新情報を提供 #author("2023-02-05T10:38:22+00:00","default:admin","admin") -[[「State of JavaScript 2022」公開。利用率1位のフロントエンドライブラリはReact、レンダリングはNext.js、テストはJestなど、4万人のエンジニアが回答:https://www.publickey1.jp/blog/23/state_of_javascript_20221reactnextjsjest4.html]] -[[JavaScript]] -[[JavaScript/ツール]] -[[JavaScript/V8]] -[[JavaScript/イベント]] -[[JavaScript/サーバサイド]] -[[JavaScript/タイマー]] -[[JavaScript/トラブル事例]] -[[JavaScript/ライブラリ]] -[[JavaScript/ローカルファイル]] ---- -[[JavaScriptist:http://javascriptist.net/]] -[[Core JavaScript 1.5 ガイド:https://developer.mozilla.org/ja/Core_JavaScript_1.5_Guide]] -[[一撃必殺JavaScript日本語リファレンス:http://www.openspc2.org/JavaScript/]] -[[初めてのJavaScript 第2版 サポートページ:http://www.marlin-arms.com/support/ljs2/]] ... プログラム例あり -[[「え?それそんなかかるの?」簡単そうに見えて案外時間のかかるWebサイト上のJavaScriptあるある仕様8選:https://liginc.co.jp/392786]] ---- *[[JAMstack:https://jamstack.org/]] [#l956cbb8] -[[JAMstackってなに?実践に学ぶ高速表示を実現するアーキテクチャの構成:https://employment.en-japan.com/engineerhub/entry/2019/12/10/103000]] -[[Jamstackとは何を指すのか今一度考えてみる:https://microcms.io/blog/what-is-jamstack/]] -[[Jamstackって何なの?何がいいの?:https://qiita.com/ozaki25/items/4075d03278d1fb51cc37]] *リバースエンジニアリング対策 [#y0a53ebf] -[[Webサービスをリバースエンジニアリングして、HTTP通信とJavaScriptの処理の流れを読み解いてみる:https://rooter.jp/web-crawling/web-service-reverse-engineering/]] **難読化 [#tf635ace] -[[WebセキュリティにおけるJavaScript難読化問題への傾向と対策:https://www.hamayanhamayan.com/entry/2020/08/30/120641]] -[[UglifyJS 3 – JavaScript 軽量化 (難読化) 入門:https://blogk.com/1321]] -[[JavaScriptのコードを難読化! Webアプリのリバースエンジニアリングを防ぐ「PreEmptive Protection for JavaScript」:https://codezine.jp/article/detail/11738]] -[[JavaScriptコードを強力な難読化と暗号でプロテクト ソースコードプロテクトツール「JSDefender」 2020年3月13日(金)よりリリース:https://www.atpress.ne.jp/news/207620]] -[[JavaScriptアプリは「難読化」で守る―Arxanがクラウドサービスを提供:https://it.impress.co.jp/articles/-/14486]] -[[JavaScriptの難読化に Obfuscator が便利だった:https://pisuke-code.com/javascript-obfuscator-is-useful/]] * Tips [#n7d2f0d0] ** idとname [#m1a6137a] -[[タグのidとname、nameで取得する場合:http://javascript.g.hatena.ne.jp/tetsu23/20060616/p1]] -[[getElementById()でname属性が検索される?:http://d.hatena.ne.jp/daisun/20080410/1207837641]] **文字列処理 [#o896906e] -[[JavaScriptでString.startsWith相当は何か、ベンチマークも:http://www.axlight.com/mt/sundayhacking/2013/03/javascriptstringstartswith.html]] **イベント [#db755d15] -[[要素にフォーカスが当たった/外れた時の処理を実装するには?(focus、blur、focusin、focusout):http://www.buildinsider.net/web/jqueryref/028]] **キー [#jf3bbc14] -[[Enterキーを無効にする方法:https://qiita.com/mimoe/items/89b317be5e38bfbc44ee]] * ブラウザの戻る対応 [#ma07f2b2] FirefoxとSafariは、「戻る」「進む」で、キャッシュによりonloadがスルーされるような挙動をする -[[onloadイベントの呼び出しがhistory.backとかの時にブラウザ毎に挙動違うのが気になったので軽く調査:http://www.chin3.net/tech/javascript/029.html]] -[[自分のページ(およびcookies)がSafariにキャッシュされるのを防ぐにはどうすればよいのでしょうか?:http://developer.apple.com/jp/internet/safari/faq.html#anchor5]] * 同一生成元ポリシー(Same Origin Policy) [#p5635345] -セキュリティ上の懸念から、スクリプトによるアクセスの範囲を同一のドメインから提供されるコンテンツのみに制限 * クロスドメインアクセスのテクニック [#hb47a55f] ** JSONP [#vcb28569] -JavaScriptの読み込みが同一生成元ポリシーに制約されないことを利用 -長所 --Google、Yahoo! など多くのWebサービスがJSONP形式のAPIインタフェースを実装済み -短所 --任意のコードの実行を許してしまう可能性がある --送信できるのはHTTP GETリクエストのみ(IEの場合は最大2083byte) ** フラグメント識別子を利用 [#zdbe8049] -長所 --単なるメッセージ交換であるため、送受信されるデータフォーマットのチェックが可能 --アクセスを許可するドメインを選択可能 -短所 --送信するサイト側にレシーバ用のHTMLの配置を事前に行っておく必要がある --メッセージ送受信時にURLのフラグメント識別子にメッセージをエンコードする必要がある(URLの最大長に注意) --IEの場合、フレームリロードの度にクリック音が発生する ← IEうざい。消えろ! ** window.nameを利用 [#a11d23a4] -[[window.nameによるクロスドメイン通信:http://d.hatena.ne.jp/shinichitomita/20081016/1224182679]] * Cookie [#f6f90a03] -[[とほほのCookie入門:http://www.tohoho-web.com/wwwcook.htm]] -[[クッキーを使う方法:http://www5e.biglobe.ne.jp/~access_r/hp/javascript/js_007.html]] -[[cookieで日本語を使う(escape/unescape):http://javahiyori.bake-neko.net/idea/js/encodecookie.html]] -[[クッキー(Cookie):http://www.komonet.ne.jp/~perl/chap3.htm]] -[[JavaScript - cookie,cookieEnabled:http://fstyle.ddo.jp/archives/2005/08/javascript_-_2.html]] -[[JavaScriptでcookieを操作する時はjquery.cookie.jsを使おう - 文殊堂:http://d.hatena.ne.jp/monjudoh/20080724/1216871110]] --[[JavaScriptを使いこなそう(2):http://daredemopc.blog51.fc2.com/blog-entry-254.html]] -[[JavaScriptでクッキーを超簡単に使うライブラリ「Cookie Manager」:http://phpspot.org/blog/archives/2006/11/javascriptcooki.html]] -[[prototype.jsを拡張するJavaScriptライブラリ (LIVEPIPE):http://youmos.com/news/livepipe]] -[[cookie-js:http://code.google.com/p/cookie-js/]] * イベント [#ba0a4280] -[[イベントの処理:http://www.tryhp.net/dynamic07.htm]] -[[onmousedown属性 onmousemove属性 onmouseup属性:http://www.seo-equation.com/html/html/onmousedown]] -[[JavaScriptのイベントハンドラに頭を悩ます。。:http://www.res-system.com/weblog/item/581]] ** ウィンドウを閉じたイベントでの処理 [#c6eac12f] -[[Firefoxでのwindow.event:http://p2b.jp/1152131691]] -[[Firefoxでの擬似window.event:http://p2b.jp/1149066600]] -[[prototype.js の Event.observe を使った onbeforeunload について:http://cl.pocari.org/2007-07-20-1.html]] IEはこれで動く window.onbeforeunload = function() { if(((event.clientX > document.body.clientWidth) && (event.clientY<0)) || event.altKey ) { alert("閉じちゃ、いやーー!!"); } } prototype.js を使って同様のことができる <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript"> Event.observe(window, 'beforeunload', function(e) { // イベントをキャンセルする場合は何も返さない return e.returnValue = 'beforeunload'; }); </script> * ネットワーク [#g5bf5f9c] -[[JavaScript Tips ネットワーク編:http://allabout.co.jp/internet/javascript/subject/msubsub_series_javascript04.htm]] * 文法的なこと [#i879ef86] ** 変数、プロパティが定義されていない(undefined)かの判定 [#vd75a57f] -[[Enjoy*Study:http://d.hatena.ne.jp/onozaty/20070326/p1]] --[[http://d.hatena.ne.jp/kimpo/searchdiary?word=JavaScript]] ** その他 [#d035a5fc] -[[オーバーライドと多重定義について:http://chaichan.web.infoseek.co.jp/src/javascnew05.htm]] -onClickだとうまくいかなくて、onMouseDownだとうまくいくといったケースがある * 実例 [#c9b96c7a] -[[JAVASCRIPT CONTROL EXAMPLES:http://www.jeroenwijering.com/embed/javascript.html]] -[[音声・動画配信(ストリーミング):http://f32.aaa.livedoor.jp/~azusa/index.php?t=strm]] -[[JavaScriptでランダムな文字列を生成:http://abui.nowa.jp/entry/5da5d44eee]] -[[JavaScript でハッシュアルゴリズム:http://user1.matsumoto.ne.jp/~goma/js/hash.html]] -[[JavaScriptでSHA-1を計算するライブラリ:http://b.hatena.ne.jp/entry/5377172]] * その他 [#naeea35d] -[[完全に状況を掌握した画像の遅延読み:http://d.hatena.ne.jp/uupaa/20080413]] -[[IEのJavaScriptの笑っちゃう挙動:http://d.hatena.ne.jp/hoshikuzu/20071018]]