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

SafariGoogle 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では効かない、ということなのかな。