|
|
|
|
|
Author:sexykent
オイルショック+ベビーブーム世代の元デザイナー。芸術や音楽に早くから目覚めたが、才能を伸ばすほど追求せず。いいかげん我とアートの関係を問いただしたくなった矢先、一切のデザイン生命を絶ちきる。そして今、仕事と生き甲斐をリセットして歩んでいる。最近はNike + iPod Sport Kit を利用して体力作りナンゾを画策中。
|
|
|
| Webの体裁をめぐるアレコレ その1「IE7のFlash」 |
この前ゲットしたホームベーカリーで、念願の「全粒紛パン」を作ったsexykentです(・_・) 全粒紛を入れると、膨らみに影響するので、100%全粒紛ではないのです。せいぜい、使用の小麦粉の定量のせいぜい50%ぐらいまで、全粒紛の袋に書いてありました。半分とかで本当にダイジョウブ?と半信半疑でしたが、20%配合とかでもかなりスゴイです…オツージ :*:・( ̄∀ ̄)・:*: まず腹が張って屁が出やすくなりますな。まぁ、これだけが原因か分かりませんケド…納豆ダイレクト食いとか、デトックスジュースを飲んでますからね。そんなわけで、全粒紛の割合を少し減らしましたとさ。
さて、Webの表示方法をめぐって俺的に少し難儀した。…というのは、やっぱり原因はInternet Explorerだ。MacだMacだと騒いでいても、市場シェアはWindowsに叶わない。それも、まぁIE6まではなんとか「調整」ぐらいでダイジョウブだったんだが、IE7からは挙動が変わってしまったので、何とかする必要があったのだ。自動でIE7にアップグレードされるパソコンが殆どらしいからさ。
で、なにがどういうわけかと言うと、
「IE7でFlashの挙動変更」
という、技術的には後退と思える仕様変更だ。つまり、アメリカの裁判社会で、「この技術は勝手に使わないでよね」という訴えを起こされたらしいのだ。Flashがというよりも、Microsoftが自動で再生する仕組みをIEに組み込んだ所を争点としているらしい。訴えた企業は、企業としての実態が有るようなところではなく、とにかくライセンスを先取りして、ライセンス違反を指摘して金をふんだくるという、面倒くさい会社だ。そんな銭金の問題で、世界中が麻痺するという社会になってしまったのだ。
まぁ、これは少し前から言われていたことで、IE7からは「クリックするとこのコントロールをアクティブにして使用します」というのがいちいち出る上に、実際にFlashをクリックしないと使えない。んもう!!(-_-メ)
それを回避するために「JavascriptでFlashを間接的に呼び出す」方法をとるのが手っ取り早いようだ。ただし、それは「WIndowsのIE7のため」なので、その他のブラウザ環境に影響が出ないようにしなくちゃならない。大きく使うテクニックとしては二つ。これから修正しようと思う人は参考にしてくらはい (*^ー^)ノ
1●Win+IE7用にFlash張り替え作業をする 2●ブラウザ判定→「Win」の「IE」なら、専用のページにジャンプ
まず、今まで作ったページを「複製」。それで、ファイル名も分かりやすいように「〜_ie.html」などと追加する。そもそも俺のように、「Javascriptを記述するって??」なんて人の場合、次からのハードルが高くなる。
「Javascriptの外部ファイルを作る」
これは、「外部javascript名.js」という名前のファイルだ。だから?ああ、ゴメンよ、俺も詳しくは分からない。とりあえず、「テキストエディット」みたいな簡易ワープロソフトを起動する。そして、下記の内容をコピって修正したまえ。
function 命令名() { document.write('<object classid="clsid:〜" height="swfの縦サイズ" width="swfの横サイズ" >\n'); document.write('<param name="scale" value="noborder" />\n'); document.write('<param name="movie" value="swfファイルの場所" />\n'); document.write('<param name="quality" value="best" /> />\n'); document.write('<param name="play" value="true" /> />\n'); document.write('</object> \n'); }
もちろん、赤字で書いた所はそれぞれの環境で書き直す部分さ。青字の部分は、Flashのバージョンだとかの情報だから、もともと貼り付けてるFlashのHTMLソースから引っ張って入れ替えてくれ。
「〜_ie.htmlを修正する」
まず、今作った外部.jsを認識させる作業で、HTMLのヘッドタグ内に以下を埋め込む。
<head>…… <!-- 外部FLASH設定ココから--> <script src="外部javascript名.js" type="text/javascript"></script> <!-- ここまで--> ……</head>
そんでもって、実際に<embed>とか<object>で囲まれたSWF貼り付けの部分を下記に入れ替える。
<script type="text/javascript"> 命令名();</script>
つまり、Javascriptの命令(指定のFlashを表示という単純なもの)を外部ファイルで定義し、ソレを呼び出すと言う仕組みだ。俺も、色んなトコロから情報をあさって繋げただけさ。
「元の〜.htmlにブラウザ判定を追加する」
これも、HEADタグの内側に埋め込むのさ。
<SCRIPT LANGUAGE="JavaScript"> <!-- var IE = (navigator.appName.indexOf("Explorer") != -1); var OS = (navigator.userAgent.indexOf("Win") != -1); var OP=(navigator.appName.indexOf("Opera") != -1);
if (OP){ location.href = "〜_ie.html"; } if ( IE && OS ){ location.href = "〜_ie.html"; } //--> </SCRIPT>
俺の観察によると、生意気にOperaも似たような挙動をするのでIEと同じように処理させるのがいいようだ。で、Operaの場合も〜_ie.htmlにジャンプさせるようしてある。これで、「Operaか、WindowsのIEは指定ページへ飛ぶ」という仕組みになる。ちなみに、Mac版のExplorerはウチの環境ではうまく動作しないので追求を諦めた。
|
| この記事に対するトラックバック |
トラックバックURL
→http://sexylife.blog52.fc2.com/tb.php/1211-4514e292
この記事にトラックバックする(FC2ブログユーザー)
ie7 に関連するブログ記事の検索結果や関連ワードをまとめてみると… 話題のキーワードでブログサーチ!【2008/02/14 13:04】
|
|
|
|
|
|
09
| 2008/10 |
11
| 日 |
月 |
火 |
水 |
木 |
金 |
土 |
| - |
- |
- |
1 |
2 |
3 |
4 |
| 5 |
6 |
7 |
8 |
9 |
10 |
11 |
| 12 |
13 |
14 |
15 |
16 |
17 |
18 |
| 19 |
20 |
21 |
22 |
23 |
24 |
25 |
| 26 |
27 |
28 |
29 |
30 |
31 |
- |
|
|
|
|
|