我有一个项目,他们希望我将网站嵌入到java应用程序中,他们希望网站具有与应用程序其余部分类似的配色方案。我对CSS和构建网站了解很多,但我不知道如何随时改变网站的外观。有人可以提供帮助吗?
我无法访问标题,因为它不是我的网站。为了提供有关该项目的更多信息,我们在java客户端应用程序中嵌入了一个浏览器。用户需要访问显示数据库内容的网站。我无权访问该网站的原始html或css。
我需要的是更改传入网页的背景颜色和字体大小,以匹配java应用程序的外观。
答案 0 :(得分:2)
一种方法是用自己的CSS替换他们的CSS。
你也可以采用Stylish plugin使用的方法,它涉及很多重要的减速以覆盖网站的CSS。由于这是一个Java应用程序,我认为用户将没有机会提供自己的CSS,所以在这里使用!important并不完全违反标准。
答案 1 :(得分:2)
在您的特定情况下,我会研究数据抓取,您需要做的就是抓取网站上的数据,然后重新设置它以便按照您想要的方式呈现。
祝你好运答案 2 :(得分:2)
Firefox的Greasemonkey插件就是这样做的。您可以编写一些Javascript代码,并在某些网页加载时运行它。使用它的一个常见的事情是更改DOM以移动页面元素,隐藏或调整元素大小,更改颜色等。如果您想了解一下userscripts.org,可以使用一堆示例我在说什么。
您的代码只需要做类似的事情。加载页面(包括普通样式表),然后使用DOM根据需要更改样式元素。浏览页面源以获取重要元素的名称/ ID,您的代码可以关键。加载包含更改的其他CSS文件是一种选择,但以编程方式执行此操作可能会在目标网站更改时为您提供更大的灵活性。
答案 3 :(得分:1)
取决于您使用什么来显示Java中的页面。大多数浏览器实现都支持对DOM的动态更改,因此您只需将CSS文件作为最后一个元素添加到标头中,它就会被应用。
答案 4 :(得分:0)
你需要知道html / css的标记,这样才能做出最好的皮肤。
理论上你可以通过设计基本标签来做到这一点:h1 ... h6,p等......但它不会那么好,有时可能无法产生最好的效果甚至产生可怕的东西有时候。
如果你知道网站标记,那么你可以制作一个皮肤,只需使用CSS /图像就可以根据需要进行修饰。
只需包含您的CSS标记LAST,以便它覆盖您想要以不同方式换肤的网站上已存在的标记。
本身不应该是一件困难的事情。皮肤本身可能是更好的(需要更多的努力)部分工作。
答案 5 :(得分:0)
动态,应该意味着更改获取的html。所以解析和替换令牌似乎是一种方式。
您可以通过替换指向css文件的链接中的href值来更改样式表文件的位置,并将值设置为样式表(不同的URI)。
<link type="text/css" href="mylocalURI" rel="stylesheet />
(this should be the result of a process/replacement)
我认为您了解内联样式应该发生什么。
答案 6 :(得分:0)
我会使用JTidy将原始网站HTML规范化为XHTML,然后使用XSLT仅过滤有趣/相关的信息,获取XML格式;最后(因为我不想将XML转换为对象),XSLT再次将“纯”XML转换为HTML外观和放大器。觉得我需要/想要。
所有这些都可以组装成流,每个过滤器使用或多或少4 Kb的缓冲区(每个12 Kb)。也意味着它会跑得足够快。所有这些都基于标准的开源可用组件。
干杯。