通过 jsquery/ajax 注入的页面在任何 Chromium 浏览器中都无法正确显示

page injected via jsquery/ajax does not show properly in any Chromium browser

提问人:user433037 提问时间:8/27/2010 更新时间:8/27/2010 访问量:111

问:

因为很明显,与被注入的页面相关的 css 不是由 Chromium 加载的。但是,它在 IE8/O 10.x/FF3.6x 中运行良好。

因此引出了一个问题 - 我在 html 编码中的愚蠢,Chromium 错误还是 jquery 错误?这是我能想到的。

这是有问题的页面,消除了所有不必要的 JS http://logistik-experte.gmxhome.de/test.html,导航到恢复并查看差异。这基本上让我发疯,因为错过了某个地方的重点,因此任何合理的建议/帮助将不胜感激。

干杯

JavaScript CSS 阿贾克斯 Chromium

评论

0赞 Buggabill 8/27/2010
我一定遗漏了一些东西,因为它在我的 Chrome 副本(版本 5.0.375.127)中看起来不错。您是否清除了缓存并可能重新启动了浏览器?imgur.com/24yMK.jpg

答:

0赞 bobince 8/27/2010 #1

我同意 Buggabill:在 Chrome 5 中对我有用。(至少在服务器上是这样;从本地文件系统加载文件时可能会出现问题。

但是,您的方法存在问题。通过仅通过脚本加载页面内容,您使非 JavaScript 用户(包括所有搜索引擎)无法访问您的页面。此外,您不能使用后退按钮,并且页面不可添加书签、无法在新选项卡中打开等。

基本上,你已经重新发明了所有的问题,以及为什么没有人再使用框架的原因。在熟悉提供可访问性和可用性的方式之前,不应真正部署此类解决方案。至少,您需要将导航链接指向包含其内容的真实页面。然后考虑允许基于哈希的导航,以便动态加载的页面具有唯一的 URL,可以在该 URL 之间导航,并在首次输入 URL 时在加载时重新加载所选页面。<frameset>

此外,如果要将内容加载到页面中,则应注意仅加载所需的内容,例如使用 .否则,您将插入完整的 HTML,包括所有这些,这显然没有意义。load('portfolio.html #somewrapperdiv')<!DOCTYPE><head>

老实说,就目前而言,我看不出动态加载的意义。您花了很多时间实现一个不寻常的导航方案,与简单的单独可导航页面相比,该方案有许多缺点,但没有明显的优势。

评论

0赞 user433037 8/27/2010
感谢您的入住。它在 Chromium 中工作,但它不加载与页面相关的 CSS,另一方面,基于 Chromium 的浏览器和 IE/FF/O 之间的布局存在差异。IE/FF/O 确实加载了相应的 css。不使用测试页面但使用根 logistik-experte.gmxhome.de 可能更清楚 至于结构,我宁愿不重新加载标题和幻灯片,这样可以节省带宽/速度。我知道 js 禁用的浏览器不会显示该站点,但感谢您指向那里。问题仍然存在 - Chromium 错误,因为其他浏览器玩得很好?
0赞 user433037 8/27/2010
imgur.com/hSIDU.png,这就是正确应用CSS时的样子
0赞 bobince 8/28/2010
哦,我明白。嗯,是的,这就是我所说的将整个文档加载到 .目标文档包含无法插入到文档正文中的元素。也许有些浏览器仍然会让你这样做,但这不是你应该依赖的东西。将样式保留在全局样式表中,并仅加载目标页面的片段,仅包含实际有效的元素,可以放在要放置它们的文档中的位置。#about_us<style>
0赞 user433037 8/28/2010
注意反馈,如果最终解决。从子页面中取出所有开销并留下文本。现在 Chromium 也在加载相关的样式表,并按预期显示简历页面......非常感谢!