以编程方式添加的样式表元素不受dom的尊重

时间:2014-10-01 17:58:24

标签: javascript jquery css

在我们的网络应用程序中,我试图点击我们的服务器,以确定他们是否对Web应用程序的布局进行了任何自定义CSS调整。获得布尔标志后,我将从服务器返回CSS并在最后一个之后注入新的head link ...

问题是,这不是更新页面的样式或布局。如果我进入页面元素的源代码并在开发控制台中单击该CSS文档,我可以强迫它注意"注意"只需更改样式引用的值即可使用此css。

这是我用来注入CSS的jquery

$("head link[rel='stylesheet']").last().after("<link rel='stylesheet' href='4DACTION/WEB_Mobile_CustomCSS' type='text/css' media='screen'>");

知道为什么在我在调试器中对其进行更改之前,它不会强制页面使用它?

1 个答案:

答案 0 :(得分:0)

我使用Bootstrap创建一个示例,完全按照setTimeout回调中的代码执行操作:

setTimeout(function () {
    $("head link[rel='stylesheet']").last().after("<link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css' type='text/css' media='screen'>");
}, 1000);

检查出来:http://jsfiddle.net/v089p29a/它从平面按钮切换到3D按钮。

我不确定为什么这不适合你。也许您的网址无效,如adeneo建议的那样。另外,请务必将代码放在$(window).load()$(document).ready()事件处理程序中,以确保可以操作DOM。