やりたい事・・・wordpressのトップページにFlashを表示したいけど、Another HTML-lint gatewayなどの文法チェックで怒られたくない。
ファンクションを記述する外部javascript(ここではfunction.js)を作り、以下を記述する。
function topFlash() {document.write('ここにFlashのobjectタグとembedタグを改行せずに入れる。¥n');}
ただ単に、javascriptの中にhtml-lintで怒られるembedタグを逃がしているだけ。
以下例。
(FlashのID、幅、高さ、背景色、アドレスなどは適宜変更。wmode="transparent" は背景を透過させたい時に使用。)
/*トップページのフラッシュ呼び出し*/ function topFlash() {document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="幅" height="高さ" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="data" value="Flashのアドレス" /><param name="quality" value="high" /><param name="bgcolor" value="背景の色" /><param name="wmode" value="transparent" /><param name="src" value="Flashのアドレス" /><embed type="application/x-shockwave-flash" width="幅" height="高さ" src="Flashのアドレス" wmode="transparent" bgcolor="背景の色" quality="high" data="Flashのアドレス"></embed></object>¥n'); }
※flashで書き出すときに吐き出されるタグをコピペする時に忘れがちだが、document.write(' ')の中は'ではなく"で統一しないと構文エラーになる。 document.write(" ")にすると中は'で統一しないといけない。
※document.writeの中では改行しない。
改行したい場合は行末に「\」でエスケープする事で、見かけ上は改行したように見える。
以下例。
document.write('\ abcdefg\ こんな感じで\ 改行っぽく\ 出来ます');
※どちらにせよdocument.writeの中では改行出来ないけど、html内でjavascriptを改行した場合、wordpressではFlashが表示されない事があるっぽい。
そして表示したいページの<head></head>内に、
<script src="function.jsの場所" type="text/javascript"></script>
を入れる。 そしてそしてbody内の表示したい場所に
<script type="text/javascript">topFlash();</script>
とfunction関数を書く。
ちなみにwordpressでトップページにはFlash1(function名)を表示させて、他のページにはFlash2を同じ場所に表示させたい場合は、function.jsにFlash1とFlash2のタグを入れた後、header.phpに、
<?php if (is_home() && !is_paged()) { //indexページであり他のページで無い時は以下を表示 ?> <script type="text/javascript">topFlash();</script> <?php }else{ //他のページは以下を表示 ?> <script type="text/javascript">topFlashStop();</script> <?php } ?>
を入れる。
ソース
findxfine様 http://www.findxfine.com/wordpress/132.html
WordPress & Business メモ様 http://www.bizmemowp.com/wordpress-biz195