在html中将类添加到脚本行

时间:2013-12-05 19:40:41

标签: javascript html css

我可以使用CSS隐藏脚本行吗?例如,如果我们在脚本行中添加了一个class =“slider”,如下所示:

<script class="slider" type="text/javascript" src="assets/js/slider.js"></script>

然后在css中我们做了:

.slider {display: none}

我想要的原因是我想在调用特定样式表时启用js

3 个答案:

答案 0 :(得分:2)

查看此相关问题,找到通过JavaScript添加CSS的方法:Dynamically loading css file using javascript with callback without jQuery

答案 1 :(得分:0)

至少目前,假设您只在文档加载期间加载样式表。然后,您可以执行以下操作:

function checkLoadedSheetsForHref(href) {
    for (var i = 0; i < document.styleSheets.length; ++i) {
        if (document.styleSheets[i].href == href) {
        // or if you just want to check the filename, check if href contains it:
        // if (document.styleSheets[i].href.indexOf(href) != -1) { 
            return true;
        }
    }
    return false;
}

document.onload = function() {
    if (checkLoadedSheetsForHref("assets/js/slider.js")) {
        // enable whatever js you want
    }
}

如果您有动态加载样式表的内容,您可以设置定时器以等待表单加载,或者将onload添加到添加它的任何内容中,或者只检查您正在加载的字符串。 / p>

答案 2 :(得分:0)

我会这样做。自我解释:

var SliderVar = document.getElementById("slider");
if (SliderVar.style.display == "none") {
    var showScript = false;  
} else {
    var showScript = true;   
}
if(showScript) {
  var sc = document.createElement('script');
  sc.src = 'assets/js/slider.js';
  sc.type = 'text/javascript';
  if(typeof sc['async'] !== 'undefined') {
     sc.async = true;
  }  
  document.getElementsByTagName('head')[0].appendChild(sc);
}