ブラウザで見ている画面を動かす歴戦ブックマークレット使ってる?
ブックマークレット (Bookmarklet) とは?
ユーザーがウェブブラウザのブックマークなどから起動して、ウェブブラウザで簡単な処理を行う簡易的なプログラム。
使っていて「足りないなー」という機能を補ったり、ウェブアプリケーションの処理を起動する為に使われる。
とにかく使い勝手が悪いサイトを、自分が使いやすいように使うために使うよ
作るのはカンタン、でもデバッグの仕方知ってる?
自分知らなかったので、「多分原因あれや!」て決め打ちで直してた。
でも、長文になったり「原因がわからん!」てとき困った。
なったことなかったのだ、今まで。
というわけで調べてみました。
まずはブックマークレットの基本
ブックマークレットの作り方
ブラウザのブックマークを作ります。
本来はURLを入力するところに
javascript:(function() { /* この中にJavaScriptで処理を書く */ })();
を作ります。
例えばアラートを出す場合
javascript:(function() { alert("アラートが出る例"); })();
ブックマークレットの使い方
ブラウザで使いたいサイトを表示させ、先程作ったブックマークを押します。
いつものブックマークを開く感じですね。
先ほどのソースで作っていた場合、アラートが出てきます。
では、次からお待ちかね
デバッグの手順
コンソールを使用する
ブラウザの開発者ツールを開く
Chrome: F12 もしくは Ctrl + Shift + I
Firefox: F12 もしくは Ctrl + Shift + I
Edge: F12 もしくは Ctrl + Shift + I
Safari: メニューから「開発」>「コンソールを表示」
コンソールタブを選択
開発者ツールの中の「Console」タブを選択します。
実行後、ここにエラーが出ていたら解りやすいんだけど
元々のソースのエラーもあったりするから、何が原因か読み取れないんだよね
そこで
スクリプトを直接実行する
作ったブックマーカーのソースを丸っとコンソールに貼り付け、Enterキーを押せば実行できます。
ブックマークレットのコードを直接コンソールで実行することで、
そのソース自体の実行結果や取得情報、エラーや警告メッセージを見ることができる。
べんり。
メッセージを確認する
コンソールにエラーメッセージが表示される場合、そこから問題を特定できます。
例えば、要素が見つからなかった場合は「null」や「undefined」と表示されるかと。
ここまでで基本的には解決できる。
補足:要素の存在確認
そもそもの要素が正しく取得できていないかも?
以下のようにコンソールで1個1個クエリを実行して、要素が取れているか確認してみて。
document.querySelectorAll('.comment');
コメント