iframe内のcssを編集するJavaScript

0

こちらもネットショップASPなどにありがちなのですが、システムで自動的に表示されるコンテンツがiframeで読み込まれていたりした場合、そのスタイルの変更は通常のcssの編集等では出来ません。

そんな時はやはりJavaScriptにて書き換えて上げる等の対応が必要です。

具体例:iframe内の【width】を変更してみる

<script>
$(function(){
    $(window).load(function(){
		$('iframe').contents().find('#area').css('width', '100px');
    });
});
</script>

【#area】はiframe内での適用したid(もしくはclass)なので、適宜書き換えます。今回は【width】を【100px】に書き換えるという例ですので、こちらも適宜書き換えで。

Google ChromeではJavaScriptによるiframe内のcss編集が効かない場合も

と、通常は上記で無事cssが書き換えられて、iframe内のスタイルを思いの通りに変更出来るのですが、Google Chromeにおいてはうまく反映されないという現象が起きています。

原因を調べてみたところ、どうやら同ページ内にtwitterのツイートボタンを設置している場合はこのJavaScriptが効かなくなるようです。ツイートボタンもiframeで読み込ませてページ上にボタンを設置する仕組みです。それでiframe内のcssに干渉して編集しようとする動きを(なぜかChromeが)ブロックして無効になっている様子。

現在のところ、こちらに対しての有効な方法は見つかっていないので、webページの制作側としてはiframeのスタイル変更を諦めるか、ツイートボタンを設置しないのどちらかで対応するしか無さそうです。

[amazonjs asin=”4844363689″ locale=”JP” title=”現場でかならず使われている CSSデザインのメソッド”]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA