:date: 2008-06-06 02:29:26 :tags: Zope, web =================================================== IEで「操作は中断されました」の罠にはまる =================================================== JavaScriptで ``include('foo.js')`` とか書ける様になる include.js というのがあります。 - `JavaScriptMVC - Include`_ やってることは非同期に指定されたファイルを読み込んでHTMLにscriptエレメントを挿入しているだけなんで、単純な用途なら自分で作ってもいいかな、という感じですが、とりあえず使ってみました。 初めのうちは特に問題もなく、Zopeで表示するページに組み込んで使っていたのですが、IE6で動作確認したところ、思わぬ問題が。includeを使うとIE6で ``「操作は中断されました」`` というDLGが出てページが表示されません。色々コードをいじったりググったりして、あるていどの発生条件が分かった気がします。 1. HTMLのロードがまだ完了していないときに 2. 動的にHTMLを変更する(include.jsでincludeを実行する等) 3.
タグの最初にbaseタグがZopeによって挿入されている 4. baseタグの挿入により、meta contentTypeタグが直後ではなくなる Zopeでは例えばフォルダのURLで末尾に'/'を付けていない場合などにZope的に正しいURLをbaseタグとしてZPTのレンダリング結果に挿入します。Zope的に正しいURLにアクセスするとbaseタグは挿入されません。今回の現象はbaseタグが挿入されていない場合には発生しなかったので、(3)を条件に入れています。 .. code-block:: xml