2012-03-09 69 views
0

我发现这个api http://code.google.com/chrome/extensions/tabs.html#method-insertCSS,但这是api在加载html文件时插入css文件,并且整个页面重绘导致新的css规则隐藏一些这个页面的区域。是否有任何想法让我在页面呈现之前插入css文件?我知道manifest.json可以解决这个问题,但是这个解决方案是静态的,我不能通过编程来改变风格。通过编程改变chrome扩展的manifest.json中的user_contents信息

我想要的是,我可以动态分配CSS规则(CSS文件或CSS代码片段)到符合我的条件,并不闪烁页面的某个页面。 Manifest.json规则是静态的,并且这些规则在DOM呈现之前确实应用(通过使用run_at选项,我可以获得良好的砂砾控制)。

回答

0

您应该在清单的content_scripts字段中尝试runt_at:“document_start”

http://code.google.com/chrome/extensions/content_scripts.html

“的文件开始运行”注入你的代码构建的DOM之前,这就是为什么我认为这将正常工作。

我建议你试试这种方式只作为测试:通过清单注入你的CSS,而不是通过程序注入。如果你获得了你正在寻找的行为,你可以调整你的清单以确保在构建DOM之前进行程序注入(.insertCSS(...))。

+0

是的,我已经通过清单测试了我的CSS,并且它使页面呈现平滑。当我通过程序插入CSS时,页面中的某些区域不会闪烁(显示和隐藏)。 – dddkkk 2012-03-09 04:41:12

+0

我尝试在manifest.json的content_script中追加这条规则{“matches”:“http:// */*”,“run_at”:“document_start”},chrome警告我这条规则需要少一些“js”或“css” – dddkkk 2012-03-09 04:43:50

+0

是的,规则需要您想要自动插入的js o css。在编程方面,你必须编写代码来绑定你的监听器,才能在构建DOM之前插入你的CSS。您不能暂停构建,您必须在文档开始时启动您的代码。什么事件激发你的代码? – 2012-03-09 05:12:19

相关问题