Hatena::ブログ(Diary)

rikubaの日記 RSSフィード

 | 

2009-07-10

Webkitでstyle要素をdisabled=trueにしてもスタイルシートを無効にできない

SafariやGoogle Chromeで、style要素をdisabled=trueにしても、そのstyle要素のスタイルシートを無効にできない。

document.getElementsByTagName('style').item(0).disabled = true;

一方link要素で読み込んだ外部スタイルシートは、そのlink要素をdisabled=trueにすることで無効にできた。

解決策が分かるまで、はてなダイアリーで好きなテーマ(デザイン)を適用するブックマークレットはWebkit対応はおあずけ。使えないこともないけれど、ダイアリーによってはぐちゃぐちゃになる。

document.styleSheetsからなら無効化できた。

document.styleSheets.item(2).disabled = true;

でもこれだと文書順でしかスタイルシートを特定できない。

removeChildでも無効化できた。

var s = document.getElementsByTagName('style').item(0); s.parentNode.removeChild(s);

os0x style.sheet.disabled = true;でいけるよ

document.getElementsByTagName('style').item(0).sheet.disabled = true;

確かにWebkitでも無効になりました。

id:os0xさん、ありがとうございます。


最初の方法だとHTMLStyleElementインターフェイスのdisabledプロパティ、今回の方法やdocument.styleSheets.item(n).disabledだとStyleSheetインターフェイスのdisabledプロパティで、前者はWebkitでは効かない、ということなのかな。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/rikuba/20090710/1247232335
 | 
プロフィール

rikuba

JavaScriptのことばっかり