jsで連番のページを一気に開く

1から10までのページを一気に開きます。
1000ページ指定しても普通に動作してしまうので気をつけて下さい。

jQueryで電話番号のリンクを外す方法

htmlで

と記述すると、電話を掛けるリンクになります。
しかしPCでは不要なリンクなので、aタグを外す方法をご紹介します。

以上です。
もしモバイルで分ける場合は、以下のような形が良いと思います。

これを入れるだけで、PC版ではリンクが外れます。

イラストレーターのjavascriptマクロの注意点

山程ありますが、その内の一例をご紹介します。

activeDocument.layersで取得できるレイヤーは最上位のレイヤーだけ

サブレイヤーはactiveDocument.layersで取得できません。全てを取得したい場合は再帰処理でlayersのlayersの…と見ていくしか無さそうです。
一番上のレイヤーのサブレイヤーはこんな感じで取得できます。
app.activeDocument.layers[0].layers[0].name

テキストはテキストフレーム

activeDocument.textFramesで全てのテキストを配列で取得できます。Fが大文字になります。
(レイヤーもこれで取得できれば楽なんですが、いい方法はないでしょうか…)
contentsプロパティで内容を取得、変更できます。
alert(activeDocument.textFrames[0].contents); //文字列が表示されます。
activeDocument.textFrames[0].contents = “abcde”; //文字列を”abcde”にします。

可視状態やロックの取得、設定

レイヤーはvisibleプロパティで設定します。
また、親の表示/非表示には影響されません。
activeDocument.layers[0].visible; //trueかfalseが返ります。
activeDocument.layers[0].visible = true; //代入すれば設定できます。

テキストフレームの可視状態ははhiddenで設定します。visibleプロパティでは設定できません。
activeDocument.textFrames[0].hidden = false; //visibleとは逆で、falseで見られるようになります。

ロックはlockedで設定します。trueでロック、falseで解除です。
可視状態でなければロックの設定も解除もできません。親が非表示となっている場合も操作できません。
ロックしていてもjavascriptでオブジェクトの操作は可能です。

activeDocument.textFrames[0].locked = false;
activeDocument.textFrames[0].contents = “abcde”;

テキストフレーム・レイヤーをすべて表示させる場合、カッコ悪いですが以下のようにしています。

エラー処理

必ずしておいたほうがいいです。
ただエラーメッセージはかなりアバウトです。親レイヤーに原因がある場合も多々あります。しっかり確認しましょう。
メッセージは英文で返ってきますが、そんなに難しくはありません。
大体この2パターンです。
modified:変更できない(ロックか可視状態が原因)
outofboundsは配列のインデックスが最大値を超えているか下回っています。

イラストレーターのjavascriptマクロでテキストを全てアウトライン化

createOutline()を使います。
元々のテキストは消えるので、必要な場合はコピーなどをとっておきましょう。
また、色々なエラーが考えられるのでそこは実装せずに手作業にしています。

イラストレーターのjavascriptマクロのサンプル

最上位レイヤーを削除する場合はこのような感じです。
deleteitemsに任意のレイヤー名を追加して下さい。

注意点
forで回す場合は、レイヤーインデックスの最大から初めて、ループ変数はデクリメントにする。
削除した場合にインデックスがずれるため。
また、インデックスが最大の時に削除する場合、breakで抜けておかないとエラーになる。

イラストレーターでjavascriptを使う時のデバッグ方法など

まず、イラストレーターを開いて下さい。
既存のファイルを開くか、ctrl+Nで新規作成します。

で、jsファイルを任意の場所に作成します。デスクトップで良いでしょう。名前はtest.jsとでもしましょう。
test.jsの内容は

とします。コンソールに1を出力するという内容です。

こうすれば、デバッガが自動的に立ち上がり、コンソールに1を出力します。
ちなみにデバッガの名前は「ExtendScript Toolkit」です。単体で立ち上げる事もできますが、
こちらのほうが早いでしょう。

ちなみにこの時点ではまだ、jsファイルともイラストレーターとも連携していませんので注意して下さい。
まず、立ち上がったデバッガからjsファイルを開きます。

1

そして、イラストレーターと連携させます。
左上のコンボボックスでイラストレーターを選択、その左の鎖が緑色になっていれば成功しています。

2

念のためコンソールに「app」と入力しエンターを押すと
結果 : [Application Adobe Illustrator]
と返ってきます。
もし、
結果 : [object Application]
と返ってきた場合は設定が完了していない可能性があります。

これでデバッガの準備完了です。

ブレークポイントは緑の四角のところをクリックして下さい。
一度クリックでブレークポイント有効化、
もう一度クリックで無効化、
もう一度クリックすると削除されます。
F9でも変更できます。
青い四角のところをクリックすると行を指定してジャンプになります。ちょっと狭いですね。

3

後はF5で再生、shift+F5で強制終了、ステップインはF11です。

URLバーのURLを変更する方法

URLバーのURLを変更する方法。
history.replaceState()で可能です。
注意点として、アンドロイドの一部では対応していないようです。ガラケーも危険な気がしますので、
この方法でURLを変更してブックマークなどを勧める場合は注意して下さい。
また、別ドメインに変更することはセキュリティ上不可能です。

例として、URLの一部をランダムな文字列に変更するjsをご紹介します。

0.1秒に一回ランダム表示。いい感じに気持ち悪くなりました。役には立たないと思います。

再帰関数で素因数分解のプログラムを書いてみた

練習には非常に良い題材だと思います。
javascriptで書きましたが、言語は何であっても大差ないと思います。
if分岐はもう少し最適化したかったのですが、概ね満足な出来でした。

locationを画面遷移させずに変更したい時

無理です、諦めましょう。

唯一例外的に可能なのはlocation.hashのみです。
(http://example.com/index.php#topの「#top」の部分)

しかしこれで良いなら、GETパラメータのようにhashを使うという荒業もあります。

参考:
https://developer.mozilla.org/ja/docs/Web/API/Window/location
>location オブジェクトのプロパティが変更されるときはいつでも、文書は、window.location.assign() が変更された URL を引数にして呼び出されたときのように、URL を読み込みます。

jQuery環境で画像ポップアップ(lightbox)はどれを使えば良いか

素直にlightbox2がオススメです。jQuery1.11系で動きます。
fancybox…最新jQueryで動かない。具体的には1.6以下で動きます。しかしjQueryのバージョンを下げることに寄る弊害のほうが大きいため、避けたほうが無難でしょう。
bumpboxは様々なファイル形式に対応していてとても便利なのですが、prototype.jsを使用します。jQueryと競合するので避けたほうが良いです。
他にも色々とありますが、主に上記二点(jQueryの旧バージョンでないと動かない・prototype.jsを使用する)に注意して選んで下さい。