タグ

JavaScriptに関するchalcedony_htnのブックマーク (118)

  • JavaScript のビットマスクによるフラグの管理

    JavaScript のビットマスクをはじめて使った。というかビット演算子というものに触れるのがそもそもはじめて。最初は何が何やらわからなかったけど、以下のページなどを参考にしつつなんとかやってみた。 ビット演算子 - JavaScript | MDN ビットマスクによるフラグ - piglovesyouの日記 状況としては、ユーザー設定のフラグをビットマスクで管理していて、それを API を通じて GET/POST する、という感じ。ここでは例として、アプリケーションのユーザー設定で、各種ソーシャル系サービスと連携するかどうかみたいなデータを管理する場合を想定する。 まず、各フラグのデータを 1、2、4、8… という整数値で定義しておく。こういったデータは定数として扱うのでキーを大文字にすることが多い、らしい。 var social = { TWITTER: 1, FACEBOOK: 2

    JavaScript のビットマスクによるフラグの管理
  • Indiscripts :: On ‘everyItem( )’ – Part 2

    In the previous episode we learned that every scripting DOM object is in fact an object specifier, which acts like a path in the InDesign object tree. Collection's methods only allow us to build object specifiers. Invoking a property or a method provided by a specifier causes InDesign to send a “verb-first command” to the underlying receiver(s). We will now consider how this process impacts your c

    chalcedony_htn
    chalcedony_htn 2014/05/23
    everyItem()のひみつ 具体的な動作とTips
  • Indiscripts :: On ‘everyItem( )’ – Part 1

    Every collection in the scope of the InDesign Scripting DOM provides a method called everyItem. It remained undocumented until InDesign CS3, but scripting experts such as Dave Saunders had already pointed out its forcefulness and already knew how to exploit it. Here are some details about this esoteric syntax. DISCLAIMER (September 22, 2023). — I was very unpleasantly surprised to find that almost

    chalcedony_htn
    chalcedony_htn 2014/05/23
    everyItem()のひみつ 前フリ回
  • Illustrator preferences 1 - 手抜きLab@DTPの現場

    アスパラガスが最盛期を迎えています。毎朝数収穫します。それらは直ちに茹で上げられ、朝の卓とお弁当のおかずにへんしんします。アスパラガスというのは鮮度が命です。流通に乗るとあの独特の青臭さが強くなり、糖質も分解されるため甘味も低下します。うちでは収穫→調理まで長くて5分です。根的に味が異なると思って下さい。とっても美味しいのですw 題です。えー、イラストレータのOMV眺めていると使い方の分からないメソッド(解説されていない、あるいは引数に当てるキー値が公開されていない、そもそも解説する気すらない)ものが山のように存在するのは皆様ご存知の通りです。わたしとしましても、そう言った状況は「全くおもしろくない」ものだと言うのは当然なのですが、教えてくれないよーって泣いているだけではそこらへんの幼児とかわりません。基的に手元で使える(無料で)リソースと経験をカンを総動員して調査を行うわけです

    Illustrator preferences 1 - 手抜きLab@DTPの現場
    chalcedony_htn
    chalcedony_htn 2014/05/20
    Illustratorの環境設定をスクリプトから取得/変更する。app.preferencesのメソッド。取得用/変更用が別々にある。値の型によっても違う。\偉業/ see also: http://chuwa.iobb.net/tech/archive/2014/05/preferences-keeper.html
  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
    chalcedony_htn
    chalcedony_htn 2014/01/24
    要素のdata-*属性にキーワードを入れておいて、JSで絞り込み。全文入れておくことも可能。文章系には使いづらそうだな
  • クライアントサイドの全文検索エンジン·lunr.js MOONGIFT

    lunr.jsはJavaScript製のオープンソース・ソフトウェア(MIT License)です。 Webサイトを運営していて、煩雑な仕組みになりがちながらも実装を考えなければならないのが全文検索エンジンです。もし作ろうとしているのがWebアプリケーションであれば、いっそのことクライアントサイドで提供してみるのはいかがでしょう。lunr.jsを使えば手軽に実現できます。 デモアプリケーションです。左上に検索ボックスがあるのが分かるかと思います。 検索はインクリメンタルに行われます。ただし全文と言ってもタグとして指定された文字だけに限定されるようです。 インデックスの作り方です。まずindexとしてフィールドを作り、その後addメソッドを使ってオブジェクトを追加していきます。 lunr.jsではテキスト処理部分を別で設ける事ができますので非英語圏では別途分かち書きを行ってインデックス化でき

    クライアントサイドの全文検索エンジン·lunr.js MOONGIFT
  • eventlistenerの応用例 - 手抜きLab@DTPの現場

    あのさあ、思うんだけどさあ、パッケージ切るんだったら料金プランとか、しっかり考えてもらわないとクラウドなんか永久に全社導入とはならないよね。全部使えるんだよ!だからこの値段!じゃなくて、これとこれでいくらだよって出来ないか???この業界なんか、ほとんどの端末でデザインスタンダード動いてたんじゃね?要らないんだよPremire。AfterEffectsなんか動かすのわたししか居ないし、その他、日語ロケールに対応出来ないアプリあっても使わないってメンバー大半なんだから...ストレージも今時20Gで何すれば良いの?DropBox使うって。 なんだかんだ言ってベータから付き合いですが、感覚的に当時の感じが抜けきれていなくて何となく中途半端な感じを未だに受けるのですがみなさんどうですか? 愚痴だけでは面白くないのでこんなのを作ったので置いておきます。 非常に単純な例です。捉えるイベントは「ペースト

    chalcedony_htn
    chalcedony_htn 2013/05/07
    デフォルトのイベントをのっとって(キャンセルして)別の動作をさせる例。
  • (JavaScriptでの)バイナリデータの送信と受信 - yoya's diary

    Sending and Receiving Binary Data https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data 場所変わったので↑https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Sending_and_Receiving_Binary_Data 「JavaScript バイナリ」でググっても古い情報ばかり見つかるので、ついカッとなって勢いで翻訳しました。 多分精度は低いのでおかしい所は指摘を頂けると嬉しいです。すぐ直します、恥ずかしいので。 初めに追記 (2013/04/27) 家の方に翻訳文を移しました。↓こちらの文章の方が精度が高いのでお勧めです。 バイナリデータ

    (JavaScriptでの)バイナリデータの送信と受信 - yoya's diary
  • batchTextEdit.jsx - s.h’s page

    Illustratorでポイントテキストをいちいちクリックしながら編集するのって、とても面倒。 一気に編集してしまいたい、という時に使える日常業務補助系スクリプトを書きました。 CS3とCS6のWindows版で動作確認しています。 使い方: 1.テキストオブジェクトを選択して、スクリプトを実行します。ポイントテキストだけでなく、エリアテキストやパステキストが混ざっててもOKです。テキストオブジェクト以外は無視するので一緒に選択されていても構いません。 2.ダイアログでテキストを編集します。内容をいったんエディタにコピーして、編集してからペーストしてもよいかもしれません。終わったらOKを押すと反映されます。 注意: 編集結果を反映する際に、元のテキストにいろいろな書式が設定してあってもまったく考慮されません。1文字目の書式が全体に適用されます。 テキストオブジェクトが複数行の場合、改行文字

    batchTextEdit.jsx - s.h’s page
    chalcedony_htn
    chalcedony_htn 2013/01/25
    選択したテキストをまとめて別ダイアログで編集できる。短い文言が大量にばらばらあるときにすごく便利/CS5.1+Win確認/テキスト属性は編集位置によって飛んだり飛ばなかったり。注意して使うか、複雑な部分以外に使うの
  • E4X を用いた XML 処理 | MDN

    警告: E4X は非推奨です。E4X は content に対して Firefox 16 からデフォルトで無効に、chrome に対して Firefox 17 からデフォルトで無効に、そして Firefox 18 で削除される予定です。代替として、DOMParser/DOMSerializer または 非ネイティブの JXON アルゴリズムを使用してください。 警告: この記事の内容は古くなっている可能性があります。 最終更新日は 2010 年 11 月 12 日です。英語版の最新の内容も合わせてご覧下さい。 JavaScript 1.6 で初めて導入された E4X により、JavaScript 言語にネイティブ XML オブジェクトが導入され、さらに XML 文書リテラルを JavaScript コードに埋め込むための構文も追加されています。 E4X の完全な定義は Ecma-357 仕

    E4X を用いた XML 処理 | MDN
    chalcedony_htn
    chalcedony_htn 2012/12/18
    E4X:ECMAScript for XML
  • Adobe Illustrator CS5自動化作戦

    このページはAdobe Systems(アドビシステムズ)社のIllustrator CS5をJavaScriptによって自動化運用するためのサンプルスクリプトを掲載しています。 Illustrator CS5はJavaScriptのコアオブジェクト、Adobeファイルオブジェクトに関しては他のAdobeソフトと同じです。つまりInDesign CS~CS5、AfterEffects 6.5~CS5、Photoshop CS~CS5、Bridge 1.0~CS5で作成された一部のコードは、そのまま動かす事ができます。これはIllustrator CS5独自部分の機能だけを習得すれば良いと言うメリットもあります。 このページに掲載されているスクリプトはMacOS X Snow Leopard (10.6) のIllustrator CS5を基準にしているためWindows版では異なる動作にな

    chalcedony_htn
    chalcedony_htn 2012/11/08
    最近よく見るので
  • JavaScriptの動かないコード (中級編) 文字数のカウントに失敗する - 主に言語とシステム開発に関して

    連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: 入力された文字列の長さ(文字数)を取得する。 ここに入力して下さい:<input type="text" id="hoge" value=""><br> <input type="button" onclick="c()" value="文字数を数える"> <script> function c() { // 入力内容の文字列 var str = hoge.value; // 普通に文字数をカウント var len = str.length; // 表示 alert( len ); } </script> 入力に利用する文字列のサンプル: 叱られる 𠮟られる 発生する問題 問題の原因 解決策 発生する問題 「叱られる」は4文字だが, 「𠮟られる」は,なぜか5文字になる。

    JavaScriptの動かないコード (中級編) 文字数のカウントに失敗する - 主に言語とシステム開発に関して
    chalcedony_htn
    chalcedony_htn 2012/10/31
    String.lengthはサロゲートペアの文字を別々にカウントしてしまう。 see also: http://liosk.blog103.fc2.com/blog-entry-162.html
  • InDesignでSocketクラスの上位クラスを作りHTTPでアクセス - CLの日記

    VBS for Adobe InDesign+更新履歴・メモ: Socketオブジェクトで遊ぶ。いや遊ばれる で、InDesignのSocketオブジェクトを発見というか発掘され、InDesignからWebの情報を引っ張ると言うことをやっておられます。 正直InDesignだけでWebにアクセス出来るだなんて考えたこと無かったのですごいと思いました。 それで、サンプルプログラムを書き直したくなったんでちょっとやってみました。PerlのLWPモジュール風に簡単にHTTPのアクセスが出来ればいいよねーという感じで、ものすごく機能絞ったプロトタイプ的なものを作成。 (function(){ function Lwp() { // コンストラクタ。ここでUser-Agent名や // timeout値など準備しておくといいよね this.userAgent = 'InDesign/5.0.3 '

    InDesignでSocketクラスの上位クラスを作りHTTPでアクセス - CLの日記
    chalcedony_htn
    chalcedony_htn 2012/08/24
    Socketオブジェクトを使ってHTTPアクセス
  • Tree-likeUI.js と jsLinb UI Builder hack - s.h’s page

    Christopher Greenさんが、拙作「木のようなものを描く」スクリプトにUIをつけてくれました。 そう、以前にも、つけてくれた方がいるのですが、Greenさん版の面白いところは、UIを作るのにjsLinbというWebアプリケーション用のフレームワークのGUIビルダーを使っているところです! これは少しの下準備で、ダイアログの作成が当に簡単に行える優れものです。 なにはともあれ、こちらが送っていただいたスクリプトです。 Tree-likeUI.zip -> http://shspage.com/ex/files.html あと、スクリプトの実行オプションを再利用できる仕組みが取り入れられています。具体的には、作成した木(グループ)に、実行オプションの値を列記した名前がついていて、この名前のついた木を選択した状態でもう一度スクリプトを実行すると、その値が既定値になってダイアログが開

    Tree-likeUI.js と jsLinb UI Builder hack - s.h’s page
    chalcedony_htn
    chalcedony_htn 2012/08/01
    JSのGUIビルダー「jsLinb」でExtendScriptのGUIをつくる
  • ui: The UI framework — Extendables v0.3a documentation

    chalcedony_htn
    chalcedony_htn 2012/07/31
    ScriptUIでのGUI作成につかえるフレームワーク
  • 3010199’s gists

    chalcedony_htn
    chalcedony_htn 2012/07/25
    milligrammeさんの解。挿入点のindexを取って表の行数分だけ戻る
  • [indesign] Tableオブジェクトの挿入位置 | mg ☂.

    InDesignの表(Table)って少し変態的な存在で扱いに困る。 テキストストーリー内の Tableオブジェクトの位置を取得するのに “0×22″の箇所でアンカーされているので、これを findGrep() などで見つければいける。DOMの上から攻める場合。 逆に Tableオブジェクトから(DOMの下から攻めて)親の挿入点を取得するのどうするんだろうと思って TableObject.properties 眺めてたら storyOffset:resolve("/document[@id=1]//story[@id=235]/insertion-point[0]") ってあったので、InsertionPoint オブジェクト取得できるっぽい。 これで、一時的に表をどっかに退避してまたもどすのとか、表をアンカー付オブジェクトにぶち込むとかいろいろ出来そう。 ちなみに、 ふつうUnicod

    chalcedony_htn
    chalcedony_htn 2012/07/25
    tableオブジェクトから表の前の挿入点を取得できる。 / ストーリー内の表を見つけるときは0x22を検索すればおk
  • InDesign CS5のEventListenerで"afterOpen"と"afterNew"イベントを設定するとファンクションが2回呼ばれる。 - 名もないテクノ手

    テスト用に下記のスクリプトを用意しました。 #target "InDesign" #targetengine "test" (function(){ var cnt = 0;//counter app.addEventListener("afterOpen", test, false); app.addEventListener("afterNew", test, false); function test(myEvent){ cnt++; alert(cnt + " times\r" + "This event is the " + myEvent.eventType + " event."); } })(); 「Startup Scripts」に入れ、InDesign CS5を再起動します。"afterOpen"はドキュメントを開き終わった時、"afterNew"は新規ドキュメントを開

    InDesign CS5のEventListenerで"afterOpen"と"afterNew"イベントを設定するとファンクションが2回呼ばれる。 - 名もないテクノ手
    chalcedony_htn
    chalcedony_htn 2011/09/10
    WindowsXP+CS5.5で再現。新規ドキュメントを開いたときはafterNewとafterOpenが1回ずつこの順で発生、既存ドキュメントを開いたときはafterOpenが2回発生。なんじゃこらー。
  • DTPの勉強会 特別編・第2回の事前課題つぶやきまとめ

    市川せうぞー @seuzo 絵描きになるための最初の練習が模写であるように、プログラミングの最初の練習は写経だと思う。コードを眺めてわかったような気になる人はずっと書けないままだ。よい教科書を選んでひたすら打つべし、打つべし! #dtpstudySP2 市川せうぞー @seuzo InDesignのスクリプトを書きたいと初心者は、まずIDスクリプティングチュートリアル(PDF: http://t.co/i2nAbew )のコードをタイプしよう。次はIDスクリプティングガイド(PDF: http://t.co/FvA4HxS )。#dtpstudySP2

    DTPの勉強会 特別編・第2回の事前課題つぶやきまとめ
    chalcedony_htn
    chalcedony_htn 2011/08/22
    随時追加されています
  • [InDesign]セル幅を内容に合わせる | milligramme 3cc

    Memo for ( ExtendScript + Script UI ) { InDesign, Illustrator } + Ruby { Web Service } InD_Board セル幅を内容に合わせる の補足。 セルの内容にあわせてセル幅を調整するというスクリプトです。 やってることは、コラムごとにテキストの頭とお尻の位置の差の最大値をセル幅にしてます。 セルの中身がないときとオーバーフローしているときには、この値を取得出来ずにエラーになるのを認識してたんですが面倒だったのでとりあえずポストしました。 表のオーバーフローの処理って、while(セルのオーバーフロー) がうまく認識されないので、親テキストフレームの.recompose()メソッドつかった強制認識的な処理をするのですが、前々からこの処理がイヤで、なんとかならないものかと思ってたのですが、いい案が思いついた

    chalcedony_htn
    chalcedony_htn 2011/08/05
    『オーバーフロー中無効になっている lines プロパティが有効になったところで処理を抜ける』