嗨,我有一个 joomla 网站,它在除 IE 之外的所有浏览器中都能完美运行。
当我在 IE 中查看它时,很多 CSS 似乎都无法识别。当我使用开发者工具查看 html 和 css 时,与其他浏览器相比有很多不同的代码。例如,有一堆额外的div
ID,称为slick-unique
. 这些在其他浏览器中不可见。我想知道是否有为 IE 创建这些 ID 的插件。虽然我没找到
甚至 HTML 结构看起来也不同。在 IE中有divs
调用rt-hidden
,但在其他浏览器中没有。我有一个仅限 IE 的样式表,我一直在尝试覆盖或修复定位,但我没有做任何更改站点。
IE中的div也有这个代码
function(b,g){var h=Element.Constructors[b];if(h){return h(g);}if(typeof b!="string"){return document.id(b).set(g);}if(!g){g={};}if(!(/^[\w-]+$/).test(b)){var e=Slick.parse(b).expressions[0][0];
b=(e.tag=="*")?"div":e.tag;if(e.id&&g.id==null){g.id=e.id;}var d=e.attributes;if(d){for(var a,f=0,c=d.length;f<c;f++){a=d[f];if(g[a.key]!=null){continue;
}if(a.value!=null&&a.operator=="="){g[a.key]=a.value;}else{if(!a.value&&!a.operator){g[a.key]=true;}}}}if(e.classList&&g["class"]==null){g["class"]=e.classList.join(" ");
}}return document.newElement(b,g);}
有任何想法吗?
我已将其范围缩小到模板index.php中的这段代码:
<?php
$browser = $gantry->browser;
$gantry->displayHead();
$gantry->addStyles(array('template.css','joomla.css','overlays.css'));
if ($gantry->get('fixedheader') && $gantry->get('menu-type') != 'splicemenu') $gantry->addScript('rt-fixedheader.js');
if ($browser->platform != 'iphone')
$gantry->addInlineScript('window.addEvent("domready", function(){ new SmoothScroll(); });');
// if ($gantry->get('loadtransition') && isBrowserCapable()){
// $gantry->addScript('load-transition.js');
// $hidden = ' class="rt-hidden"';
// } else {
// $hidden = '';
// }
?>
如果我删除该代码并刷新页面,则页面加载,显然没有 css。然后,如果我将上面的代码放回并刷新页面,页面工作正常,即使我刷新了这个页面。但是如果我尝试访问另一个页面,它会回到拥有所有额外的 div 和上面的函数代码,即使在转储缓存和刷新之后也是如此。所以似乎javascript发生了某种缓存。
还尝试关闭所有插件,但没有奏效。