2012年06月26日

fancybox で blobstore の画像を指定すると固まる件

GAE の blobstore に画像をアップロードして、その画像を fancybox で表示しようとしたところ、Safari だと完全に固まり、Chrome だと固まった後、辛抱強く待てば、画像のソース自体が表示されてしまうというとんでもない状態になってしまいました。

対応方法は
    $('a.fancy').fancybox({
        'type': 'image'
    });
とするだけ。
http://fancybox.net/faq の 6番。
ドキュメントはちゃんと読みましょうというのが今日の教訓。
ラベル:GAE javascript jquery
posted by おちエン at 23:32| Comment(0) | GAE | このブログの読者になる | 更新情報をチェックする

indexed=False にすると composite index(index.yaml)すら使えなくなる件

GAE では不必要な index は作らないというのが鉄則で、
class Hoge(db.Model):
  foo = db.StringProperty(indexed=False);
  sort = db.IntegerProperty(indexed=False);
という感じで indexed=False と書きまくりたいところなのですが、こうやってしまうと index.yaml に
- kind: Hoge
  properties:
  - name: foo
  - name: sort
などとやって、
SELECT * FROM Hoge WHERE name = 'xxx' ORDER BY sort
な感じの query を扱おうと思っても
PropertyError: Property 'name' is not indexed
なエラーが表示されてうまくいきません。
必要なのは name と order を組み合わせた index であって、name のみの index ではないはずなのですが、現在の仕様ではそんな柔軟なことにはなっていないようです。。。

http://code.google.com/p/googleappengine/issues/detail?id=4231

を見ると、2012/04/12
Issue escalated to the engineering team.
とのことなので、近々、対応されるのかもしれません。
posted by おちエン at 03:53| Comment(0) | GAE | このブログの読者になる | 更新情報をチェックする

2012年06月22日

JavaScript が Chrome で "Unexpected token ILLEGAL" というエラー

基本 Safari で開発してたので気がつかなかったのですが、Safari で正常に動く JavaScript が Chrome で動かすと、
Unexpected token ILLEGAL
というエラーで動かないことがわかりました。

やってることは、form を iframe 経由で送信して、エラーがあった場合は alert() でエラーを表示するだけのもの。
サーバ側は python + django で、python 側では、
error = self.__validate();
if len(error) != 0:
  data = {'error': "\n".join(error)};
としておいて、template では、
<script type="text/javascript">
<!--
    alert('{{error}}');
//-->
</script>
としているだけです。

google で検索したところ、JavaScript では改行はバックスラッシュを入れないといけないという。。。
error = self.__validate();
if len(error) != 0:
  data = {'error': "\\n".join(error)};
としてやれば正常に動きました。続きを読む
posted by おちエン at 03:13| Comment(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2012年06月07日

iframeから親windowのdata()が利かない

iframe から親 window に保存しておいたデータを data() を使って取得しようとしましたが、全くうまくいきませんでした。

たとえば、親 window というかメインウィンドウで
$('body').data('hoge', '123');
などとしておいて、iframe で、
hoge = $('body', window.parent.document).data('hoge');
とやったのですが、hoge が undefined になってしまい全く値が取れませんでした。
しょうがないので、
$('body').attr('hoge', '123');
としておいて、
hoge = $('body', window.parent.document).attr('hoge');
とすれば望みどおりの動きはしてくれました。
ちなみに jQuery1.7.1 です。
ラベル:jquery javascript
posted by おちエン at 08:32| Comment(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2012年06月06日

VMWare Fusion 4.1.2 にアップデートでネットワークに接続できない・・・

いつも通り、VMWare Fusion を使っていると 4.1.2 にアップデートしませんか?とのメッセージが。
仮想マシンの再開時に表示されることがある「メモリ不足のメッセージ」が解決されました。
とのことで、ちょくちょくこのメッセージに悩まされていたのでアップデートすることにしました。
アップデート自体は自動的にやってくれるのですが、いざアップデートが終わって WindowsXP を立ち上げてもネットワークにつながらないというトラブルが発生しました。
検索してみましたが、これといった情報もなく、ダメもとで「VMWare Tools の再インストール」を行ってみましたが、これもダメ。
※「VMWare Tools の再インストール」は VMWare Fusion のメニューバー「仮想マシン」にあります。
最終的に Mac を reboot したら使えるようになりました。
アップデートの際に自動で Mac の restart をするなりしてほしい。。。
ラベル:Mac VMware Fusion
posted by おちエン at 07:44| Comment(0) | Mac | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。