将外部CSS文件链接到JavaScript文件中
从上面的内容中可以整理出以下内容:
问题的出现原因:需要将外部CSS文件链接到JavaScript文件中。
解决方法:
1. 使用script标签将外部CSS文件链接到JavaScript文件中:
styles.js文件中的代码:
if (!document.getElementById) document.write('');
2. 使用document.createStyleSheet方法(IE浏览器专有方法)动态添加CSS样式表:
3. 在不支持document.createStyleSheet方法的浏览器中,可以使用其他方法来添加CSS样式表,具体方法参考stackoverflow上的解决方案。
4. 有时,不推荐使用document.write方法,因为它会覆盖整个网页的内容。可以使用其他方法来获取style元素,而不是假设它是head元素的第一个子元素。具体方法可以参考groups.google上的讨论。
以上就是将外部CSS文件链接到JavaScript文件的解决方法。
问题出现的原因是,使用jQuery的append()函数动态添加外部CSS文件,只有在页面加载之前注入样式表才有效。当在已加载的页面上运行此命令,并且使用托管在Dropbox上的CSS文件时,它将无法正常工作。
解决方法是使用JavaScript的createElement()和setAttribute()函数来动态创建元素,并将其附加到
标签中。以下是解决方法的代码:var link = document.createElement('link'); link.rel = 'stylesheet'; link.type = 'text/css'; link.href = 'style.css'; document.head.appendChild(link);
对于使用托管在Dropbox上的CSS文件的情况,可以使用以下代码:
var link = document.createElement('link'); link.rel = 'stylesheet'; link.type = 'text/css'; link.href = 'https://dl.dropboxusercontent.com/s/ep1nzckmvgjq7jr/remove_transitions_from_page.css'; document.head.appendChild(link);
通过使用createElement()和setAttribute()函数,可以在任何时候动态链接外部CSS文件,而不仅仅是在页面加载之前。
将外部CSS文件链接到JavaScript文件是一个常见的需求。下面是一些解决这个问题的方法。
首先,我们可以使用传统的方法来实现,该方法在所有浏览器中都可以正常工作。代码如下:
var cssId = 'myCss'; if (!document.getElementById(cssId)) { var head = document.getElementsByTagName('head')[0]; var link = document.createElement('link'); link.id = cssId; link.rel = 'stylesheet'; link.type = 'text/css'; link.href = 'http://website.example/css/stylesheet.css'; link.media = 'all'; head.appendChild(link); }
这个例子会检查CSS是否已经被添加,只有在还没有添加的情况下才会添加。将这段代码放入一个JavaScript文件中,让最终用户将这个JavaScript文件包含进来,确保CSS路径是绝对路径,这样它就会从你的服务器加载。
另一种方法是使用纯JavaScript来根据URL的文件名部分将CSS链接注入到`head`元素中。代码如下:
var file = location.pathname.split("/").pop(); var link = document.createElement("link"); link.href = file.substr(0, file.lastIndexOf(".")) + ".css"; link.type = "text/css"; link.rel = "stylesheet"; link.media = "screen,print"; document.getElementsByTagName("head")[0].appendChild(link);
将这段代码放在结束的`head`标签之前,这样CSS文件将在页面呈现之前加载。使用外部JavaScript文件(.js)会导致出现无样式内容的闪烁(FOUC)。
如果想要在CSS文件加载完成后运行一个回调函数,这就要复杂得多了。一些流行的JavaScript库通常都有一些形式的加载JavaScript和样式表并带有回调函数的功能。例如,可以使用YUI Get来实现这个功能。
以上是将外部CSS文件链接到JavaScript文件的一些解决方法。希望可以帮助你解决这个问题。如果你还有其他问题,请参考提供的链接获取更多信息。