2017年11月21日火曜日

Firefoxで非表示の iframeに対する getComputedStyle が null を返す

getComputedStyle が null を返す - 地獄のネコブログ
http://anekos.hatenablog.com/entry/20100516/1273953156

Firefoxで非表示のiframeに対してgetComputedStyleを使おうとすると、nullが返ってきて例外発生で止まってしまう。

Captivateで出力したHTMLをiframeに入れdisplay:noneにしておいて、moduleReadyEventが来たら表示させようとすると、CPM.jsで止まった。

2017年10月31日火曜日

JavaScriptでディープコピー

https://qiita.com/knhr__/items/d7de463bf9013d5d3dc0
Date型を扱わないのであれば、1つ目のJSONでよいかと思う。

ディープコピーとは?
http://kurochan-note.hatenablog.jp/entry/20110316/1300267023
JavaScriptで配列やオブジェクトを = で代入しようとすると、シャローコピーになってしまうので注意。知らないとハマる!

2017年10月30日月曜日

ページ読み込み中にローディング

http://gimmicklog.main.jp/jquery/278/
読み込みに時間がかかるときに、ブラウザならローディング中がわかるけど、Cordovaで囲むとわからないので、いれるほうが親切そう。

2017年10月27日金曜日

PowerPointのノートの文字サイズを一括で変更

iSpringでノートの文字表示するとき、文字サイズが反映されるので、一括変更するのが便利。

VBAスクリプト(すべて18ptにする)

Public Sub SetNoteFontSize()
    Dim objSld As Slide
    Dim objFont As Object
    Dim intFontSize As Integer
    For Each objSld In ActivePresentation.Slides
        Set objFont = objSld.NotesPage.Shapes.Placeholders(2). _
                        TextFrame.TextRange.Font
        objFont.Size = 18
    Next
End Sub


参考
http://nasunoblog.blogspot.jp/2014/05/powerpoint-vba-note-pane-font-size-change.html
この記事内の'が1か所全角になっていて、コピペするとエラーになるので注意


2017年8月29日火曜日

数値に関するライブラリ

数値に関するライブラリ、いろいろありましたので簡単にまとめます。
  • numerial.js 数値データの加工が簡単に
    • http://numeraljs.com/
    • 次のようにすると、 stringに 1,000 という結果が入る
      • var string = numeral(1000).format('0,0');  // 1,000
    •  あとは、1st,2ndのような表現も何も考えずに正しい結果が手に入る
      • var string = numerial(1).fortam('Oo');  // 1st
  • math.js より高度な数値の加工・計算・単位変換など
    • http://mathjs.org/
    • いろいろできますが、個人的に使えそうだと思ったのは下記
      • 数式処理
        • var string = math.simplify("2x * 3x");  // 6 * x ^ 2
      • 桁数を指定した数値の丸め(下の例だと、3.14が手に入る)
        • var string = math.round(3.141592,2);  // 3.14
      • 単位変換

  • moments.js 時間に特化した加工・計算ライブラリ
    • https://momentjs.com/
    • 時間に関して、計算・表示形式の変換・単位変換など
    • 相対表示("~分前")なども可能。
    • 日本語もmoment-with-locales.min.jsで対応

2017年8月4日金曜日

VBA 実行時エラー'1004'が発生する

VBAでコピーして貼り付けを実行しようとすると、実行時エラー'1004'が発生する際の解決方法

---
実行時エラー'1004'が発生します。
https://answers.microsoft.com/ja-jp/msoffice/forum/msoffice_excel-mso_winother/%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%A8%E3%83%A9/63090c23-3e6c-4855-80c5-d9e8684972c8

この質問の一番下の回答で解決。簡単にまとめると、

  • CopyのあとDo Eventsを使う
  • Do EventsのあとSleepを入れる
  • それでもエラーが出る場合は、On Errorで例外処理を記述する。

なお、このSleepの書き方では64bitのコンピュータで実行すると怒られるので、下記のように記述する必要がある。

Sleep Lib “kernel32” gives 64-bit systems error
https://stackoverflow.com/questions/41638504/sleep-lib-kernel32-gives-64-bit-systems-error

2017年7月7日金曜日

Captivateで同じスライドに戻る高度なアクション

http://blog.lilybiri.com/replay-slide-button

Captivateのアクションだと、標準では「今のスライドの最初に飛ぶ」機能がありません。

高度なアクションを使って、
cpCmndGotoSlide = cpInfoCurrentSlide - 1
とすると、今のスライドの最初に飛んでくれます。

2017年6月7日水曜日

Androidでリリース前に簡易テスト

Google Play Developer Consoleの「リリース前レポート」を試すhttp://qiita.com/yamacraft/items/2effc86401af3f70248b


  • 無料でテストができる
  • Google Play Developer Centerからアルファ版・ベータ版をアップロードするだけ
  • テスト対象端末は無作為に選ばれる
    • 端末を選びたい場合は有料サービスになる
    • 14機種でだいたい外国語の端末(日本語も表示できる)
    • OSは今のところ Android 4.4~Android O Preview にあたる
      • 4.4, 5.0, 5.1が多めで、利用者の実態に即してそうな感じがします
  • 操作等も細かくは指定できないが、

2017年5月9日火曜日

iOSでマウスアウトを機能させる

以下コードをいれることで、要素外タップでマウスアウトが発火する。
$('*').on('click', function(){ return true; });
mouseout イベントや hover の第二引数などいくつかの書き方で動く。

参考:http://stackoverflow.com/questions/7006799/does-iphone-ipad-support-mouseout-event

Google Playストア でインストールできないエラーを解消する

Android旧機種にアプリをインストールする際、 103 エラー
https://saturday-development.com/archives/4447.html


Phonegapで作ったアプリがPlayStoreにて103エラーが出てしまうエラー。
jarsigner の後ろに -sigalg SHA1withRSA -digestalg SHA1 を付加すると解消するようです。

2017年5月7日日曜日

2017年4月28日金曜日

IE11でブランクに下線がつかない問題の解決

IE11で<u>□□□□□□</u>(□は、スペースです)と書くと、下線が描かれない。
それを解決するCSS

u {
text-decoration: underline;
white-space: pre;
}

参考
http://stackoverflow.com/questions/4513388/how-to-underline-blank-space-in-css

2017年4月21日金曜日

2017年4月12日水曜日


親要素の幅に収まるようにフォントサイズを変更する
https://hail2u.net/blog/coding/resize-text-based-on-content-width.html

display:noneの要素にターゲットの幅よりも大きなサイズで入れておき、
ターゲットの幅より小さくなるまでフォントサイズを1pxずつ引いていく手法。

ネットワークがつながるまで繰り返す


Phonegap Network Connection - Cannot read property 'type' of undefined
http://stackoverflow.com/questions/25672502/phonegap-network-connection-cannot-read-property-type-of-undefined

Androidのエミュレータ環境だと、起動後すぐにアプリが開くので、
ネットワークにつながっていない状態の場合、情報取得などがうまくいかないです。

setTimeoutで500ms程度待つという解決法があったのですが、稀にまだつながっていない場合があったので、
ネットワークを認識するまでsetIntervalでループさせる方法を実装しました
(ある程度のリトライでエラー表示をさせるなどの処理が必要になりそうですが)。

------
  console.log('networkState => ' + navigator.connection.type);
  var connectionDetect = setInterval(function(){
      console.log(navigator.connection.type)
      if(navigator.connection.type != undefined && navigator.connection.type != 'none'){
        clearInterval(connectionDetect);
        console.log('networkState => ' + navigator.connection.type);
        //つながったときの処理
      }
  }, 500);

2017年4月3日月曜日

iOSの"done"などを英語から日本語に

http://shake-yama.blogspot.jp/2015/07/cfbundledevelopmentregionjapanese.html

Target設定のInfoタブ内、Custom iOS Target Properties(appName.plist)に
Localization native development region を Japaneseに変更で日本語に変わりました
(Japanとポップアップに出ますが、それでは日本語化されません)

2017年3月22日水曜日

img 要素の src 属性と onload イベントリスナの設定タイミング

http://please-sleep.cou929.nu/onload-handler-setting-timing-and-async-request-of-image-element.html

imgタグなどでonloadイベントを取りたい場合、srcを設定する前に onloadを記述しておくべきという話。

(下記のコードは上記サイトからの引用)
var img = new Image();
img.src = 'http://example.com/foo.png';
img.onload = function() { // このタイミングではすでにロードが完了している可能性がある
// event handler };
document.body.appendChild(img); 

2017年3月17日金曜日

iOS Safari プライベートブラウズがオンのとき、localStorageが使えない

http://cly7796.net/wp/javascript/can-not-be-used-localstorage-when-private-browsing-in-ios/

  • プライベートブラウズで確認することも多いと思いますが、iOS Safariのプライベートブラウズだと、localStorageが使えません。
  • setItemsなどをすると、そこでコケてしまい、それ以降は動作しなくなります。

2017年3月16日木曜日

input type=range をカスタマイズ

http://brennaobrien.com/blog/2014/05/style-input-type-range-in-every-browser.html
これが比較的うまくいくが、iOSとAndroidは標準になってしまう。

http://jsdo.it/kingpanda/8UZS
これは、IEとEDGEが変わらない。

Android4.3以下でSVGがおかしくなる

https://iwb.jp/android-4-3-svg-image-display-illustrator/


  • 4.4より前のAndroidの場合、Illustratorで書き出したSVGファイルが正しく表示されないことがある。
  • Illustratorで書き出す際に「レスポンシブ」のチェックを外す(widthとheightをSVG内に指定する)ことで問題なく表示される

2017年3月13日月曜日

画像の本来のサイズ(px)を取得する

naturalWidth と naturalHeight で取得できる。
jQueryでとれるか分からない。

var w = document.querySelector('img').naturalWidth;
var h = document.querySelector('img').naturalHeight;

ごちゃごちゃ質疑があるので無駄情報も多いですが、一応知ったキッカケページなのでリンクはります。
http://stackoverflow.com/questions/318630/get-the-real-width-and-height-of-an-image-with-javascript-in-safari-chrome

document ready と window load の違い

画像の読込もおわってから処理したいときは、$(window).load を使おう。

https://www.softel.co.jp/blogs/tech/archives/2425

2017年3月11日土曜日

HTML data-*属性

HTMLの属性(attribute)として、data-* とついているものがよくありますが…
他の属性と違った取り扱いができるらしい(しらなかった!)

jQueryだと、
<tag data-abc="myValue">
に対して、
$(selector).data("abc")
で値が取得できます。
ふつうに属性取得するのは、
$(selector).attr("data-abc")

このデータの扱いについて、少し注意が必要そう。
http://qiita.com/Kta-M/items/2eda39750abd10df9801

2017年3月9日木曜日

phonegapでinput type="file"を含むiOS10向けアプリがクラッシュするときの対応策

http://www.g8production.com/post/153868432226/dyld-abortwithpayload-ios10-crash

記事のうち、
<!-- 🖼 Photo Library -->
<key>NSPhotoLibraryUsageDescription</key>
<string><Your description goes here></string>

<!-- 📷 Camera -->
<key>NSCameraUsageDescription</key>
<string><Your description goes here></string>

をプロジェクトのInfo.plist(プロジェクト名-Info.plist)に追加すればよい

2017年2月27日月曜日

【Onsen UI】でページの内容を書き換えるとき

http://blog.asial.co.jp/1354

ページの内容を単に書き換えるだけじゃダメ。
「postpush」というイベントを拾って書き換える必要あり

【Onsen UI】で「list-item」を動的に追加したいとき

要素を追加したあと
ons.compile(’ターゲット’);
を実行する

https://ja.onsen.io/v1/guide.html
の【AngularJSを意識せずにOnsen UIを扱う】を参照

2017年2月7日火曜日

Chromeでfont-sizeを10px以下に設定する方法

http://time-complexity.blogspot.jp/2013/12/chrome-font-size-10px.html

  • Chromeは「最小のフォントサイズ」という設定があり、CSSでどう設定しても10px以下にならない。
    • transformのscaleで小さくするしか方法がない。
  • この方法を使えば、ルビのスタイルを操作できない(?)Chromeでも小さくできる。
    • ルビの位置も設定できない(?)けれど、transform:translateYで無理やり動かせる