我正在为客户建立一个网站,在某个时刻我不得不添加第三部分jQuery文件,以便将一些产品添加到我的页面。问题是这个脚本以这种方式将我自己的样式表添加到我的文件中:
jQuery.ajaxSetup({
async: false
});
jQuery('head').append('<link type="text/css" rel="stylesheet" href="http://pathToTheScript/style-products-v2.css">');
我想知道是否有办法从脚本中排除此功能。我可以在本地下载,我可以手动删除该文件,但问题是这第三部分定期更新此页面,增加了一吨新产品。 我在wordpress环境中工作,所以我的问题是:有没有办法用另一个脚本排除文件,所以我可以用旧的样式表替换它?
答案 0 :(得分:1)
删除
jQuery('head').append('<link type="text/css" rel="stylesheet" href="pathToTheScript/style-products-v2.css">');
来自剧本。
答案 1 :(得分:1)
试试这个:
$(document).ready(function(){
$("link").each(function(){
if($(this).attr("href")=="pathToTheScript/style-products-v2.css"){
$(this).remove();
}
});
});
的修改
因为此链接是由另一个脚本插入的...
.css文件的文件名可能会在将来的第三方脚本更新中更改...
您应该使用正则表达式来定位元素:
$(document).ready(function(){
$("link").each(function(){
if($(this).attr("href")==/http:\/\/domain\.com\/pathToTheScript\/.*\.css/){
$(this).remove();
}
});
});
这将删除具有href值的链接元素,如:http://domain.com/pathToTheScript/ (whatever) .css
:
例:
http://domain.com/pathToTheScript/style-products-v2.css
http://domain.com/pathToTheScript/style-products-v3.css
http://domain.com/pathToTheScript/improved-style.css
http://domain.com/pathToTheScript/anything.css
旁注:
在你保留在正则表达式中的路径部分(你肯定不会改变的部分),你必须像/
这样.
和\/
逃脱:{{ 1}}。
您可以在此处测试正则表达式:https://regex101.com/#javascript
要明确
你必须使用CSS文件的路径!
不是注入它的.js文件的路径
;)
答案 2 :(得分:1)
没有测试,但这样的事情应该有效:
$(document).ready(function() {
$('link[href="pathToTheScript/style-products-v2.css"]').remove();
});