gpt4 book ai didi

css - 在 GeckoFX 中修改/注入(inject) CSS 样式表

转载 作者:太空宇宙 更新时间:2023-11-04 12:16:53 27 4
gpt4 key购买 nike

我试图通过以下方式操纵样式表:

GeckoFXWebBrowser.Document.StyleSheets

如前所述here ,但是清除或添加那里提到的任何规则抛出与 JSContext 相关的异常,我也尝试使用 nsIStyleSheetService 类似于提到的 here如下:

Dim SSS = Gecko.Xpcom.CreateInstance(Of Gecko.nsIStyleSheetService)("@mozilla.org/content/style-sheet-service;1")
Dim mUri = Gecko.IOService.CreateNsIUri("myCSSUri")
SSS.LoadAndRegisterSheet(mUri, Gecko.nsIDOMWindowUtilsConsts.USER_SHEET)

但这也会抛出模棱两可的 COM 相关异常。

我在 DocumentCompleted 事件中尝试了所有这些。

知道这里出了什么问题吗?或者如何完成任务? (壁虎外汇 29)

最佳答案

自编写 FAQ 条目以来,Firefox 进行了一些安全更改,这很可能是最初出现异常的原因。

查看 Geckofx 29 unittests特别是这里:

[Test]
public void GetCssRules_DoesNotThrowException()
{
GeckoStyleSheet styleSheet = _browser.Document.StyleSheets.First();
GeckoStyleSheet.StyleRuleCollection cssRules = null;
Assert.DoesNotThrow(() => { cssRules = styleSheet.CssRules; });
Assert.DoesNotThrow(() => { cssRules.Insert(0, "#blanc { color: white }"); });
Assert.DoesNotThrow(() => { cssRules.RemoveAt(0); });
Assert.DoesNotThrow(() => { cssRules.Clear(); });
}

至于第二种使用nsIStyleSheetService的方法:

Dim mUri = Gecko.IOService.CreateNsIUri("myCSSUri")

如果您指定有效的 uri,可能会工作得更好。 (例如 http://www.google.com)

关于css - 在 GeckoFX 中修改/注入(inject) CSS 样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28638402/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com