5

我正在尝试编写一个将一些信息显示为 HTML 页面的 Eclipse 插件。为此,我想使用 SWTBrowser小部件。问题是当我通过 设置浏览器的内容时setText​​,nth-child选择器不起作用,但是当我通过 设置完全相同的内容时setUrl("file://...,它们可以正常工作。为什么渲染不同,如何使用setTextas with实现相同的渲染setUrl

我正在创建Browserwith SWT.NONE,因为我不想强迫用户安装 Safari 或 Firefox。

这是问题可重现的 HTML:

<!doctype html><html><head>
<style type="text/css">
    div:nth-child(2n) { background-color: #f00; }
</style>
</head><body>
    <div>1</div>
    <div>2</div>
    <div>3</div>
</body></html>
4

1 回答 1

7

广泛使用浏览器的setText()方法后,我没有看到任何像您所描述的行为。

这可能是本地 Intranet 怪癖模式/兼容模式问题吗?IE 根据内容的来源默认其渲染引擎不同 - 默认情况下,它在渲染 Intranet 内容与 Internet 内容时的行为不同(并且本地文件系统上的内容被视为 Intranet 内容。)无论如何,这就是我的回忆,所有我请务必记住,除非您明确设置兼容性标头,否则存在相当多的巫术。

添加以下元标记是否会改变行为?

<meta http-equiv="X-UA-Compatible" content="IE=9" />

DOCTYPE另外,您在添加的 HTML 中是否有适当的定义setText()

于 2012-05-25T17:25:21.247 回答