不多介绍,
明白人儿都知道我的意思。
其实也可以说是动态插入样式单的标签。

首先,
对于 Content 级的脚本,
我们可以这么写:

(document.getElementsByTagName('head')[0] || document.documentElement)     .appendChild(document.createElement('style'))     .appendChild(document.createTextNode(().toString()));

值得注意的是 Firefox 虽然支持 CDATA 文本,
但在使用时要小 hack 一下。
该方法可以用于 GreaseMoneky 等执行于 Content 级别的脚本里,
当然 Web 里也没有问题啦。

其次,
对于 Chrome 级别的脚本,
我建议这么写:

document.insertBefore(document.createProcessingInstruction(  'xml-stylesheet',  'type="text/css" href="data:text/css,' + encodeURI(.toString()) + '"'), document.documentElement);

这个方法很巧妙,
先将内容进行转码,
然后以 data: 协议载入。

当然,
也可以用寻常的方法:

document.insertBefore(document.createElementNS('http://www.w3.org/1999/xhtml', 'style') .appendChild(document.createTextNode(.toString())), document.documentElement);

好了,
今天就总结到这里,
下课。

标签: Mozilla, Firefox, Script, CSS

已有 10 条评论

  1. rokki rokki

    學到了好東西謝謝分享!

  2. kensai speed kensai speed

    wordpress 玩腻了,有點兒悶

  3. xlnv xlnv

    谢谢分享!继续关注!

  4. 落魄博主 落魄博主

    学习了 谢谢了 !!

  5. Chao QU Chao QU

    @aw
    本来就有转换程式的,
    还比较完美,
    但你的博客花边东西太多,
    估计比较难转。

  6. aw aw

    期待转换程序 >_< ...

  7. Chao QU Chao QU

    @aw
    wordpress 玩腻了,
    换个口味。

  8. aw aw

    啥时候加入Typecho的。。。好久不来了。

  9. an9 an9

    技术贴,不懂,路过.

  10. 布里斯班 布里斯班

    谢谢分享!
    这个css挺神奇的

添加新评论