ヘッダをさわることができないASPサービスを使用しています。
しかしbody内にスクリプトが書けるので、ヘッダにstyleを埋め込めるのではと思い、検索して下記情報は見つけました。
http://www.tagindex.com/cgi-lib/bbs/patio.cgi?mode=view2&f=146&no=325
この例は外部cssを読む例ですが、今回はわずかな改変なのでstyleタグを直接埋め込みたいと思っています。
下記の内容を埋め込むスクリプトを書いていただけませんでしょうか。
>|css|
h2 {
color:#01468B;
font-weight:bold;
font-size:12px;
border-bottom:1px solid #8DAAC7;
padding:6px 2px 2px 2px;
cursor:default;
margin-top:4px;
}
||<
Javascriptでは改行をなんとかしないとデータとして持てないので
あまり美しくも簡単にもならないです。
元サンプルのように外部ファイルを用意して読み込ませた方がメンテナンスとか楽になるかと思います。
一応、サンプル。
(BODY内のどこに書いてもいいけど、最後に書けば最後まで適用されないのでみっともないかも)
<script type="text/javascript"> var selector = 'H2'; var data = "color:#01468B;~長くなるので省略~;margin-top:4px;"; document.getElementsByTagName('head')[0]. appendChild(document.createElement('style')); var CSS = document.styleSheets[document.styleSheets.length -1]; if(CSS.insertRule) {//IE以外 CSS.insertRule(selector+'{'+data+'}', 0); } else {//IE CSS.addRule(selector, data); } </script>
BODY内にCSSタグを書くという方法もあるみたいです。(UAによってはいけないかも?)
↓↓↓これをBODY内に↓↓↓
<style type="text/css">
<!--
h2 {color:#01468B;font-weight:bold;font-size:12px;border-bottom:1px solid #8DAAC7;padding:6px 2px 2px 2px;cursor:default;margin-top:4px;}
-->
</style>
<h2>あいうえお</h2>
表示がくずれるので<>とコメントアウトは大文字で書きました
IE6
IE7
Firefox2
では正常にCSSが適用されていました。
これはブラウザ依存で正しくない実装なのでなるべく避けようと思っています。
また、FireFoxでは動作しましたが、IE7では適用されませんでした。
body内からheadに情報を埋め込むことはできません。
<h2 style="color:#01468B;font-weight:bold;~">あいうえお</h2>
みたいな形で記載するしかないと思います。
上記サイトにサンプルが載っているのですが、サンプルが誤っているということでしょうか。
以下のURLでJavascriptからCSSを設定を設定する手順をまとめています。
http://www.kawaz.jp/pukiwiki/?JavaScript%A5%E1%A5%E2#wb6005c8
デモページのソースが参考になると思います。
最初まったく理解できませんでしたが、他の方のレスを検証している中で、情報を参考にできるようになりました。
ありがとうございました。
Javascriptでは改行をなんとかしないとデータとして持てないので
あまり美しくも簡単にもならないです。
元サンプルのように外部ファイルを用意して読み込ませた方がメンテナンスとか楽になるかと思います。
一応、サンプル。
(BODY内のどこに書いてもいいけど、最後に書けば最後まで適用されないのでみっともないかも)
<script type="text/javascript"> var selector = 'H2'; var data = "color:#01468B;~長くなるので省略~;margin-top:4px;"; document.getElementsByTagName('head')[0]. appendChild(document.createElement('style')); var CSS = document.styleSheets[document.styleSheets.length -1]; if(CSS.insertRule) {//IE以外 CSS.insertRule(selector+'{'+data+'}', 0); } else {//IE CSS.addRule(selector, data); } </script>
いちばんクリティカルな回答でした。
ありがとうございました。
いちばんクリティカルな回答でした。
ありがとうございました。