2016-09-27 36 views
0

我只能訪問CMS的後端。他們這樣加載自定義樣式表如何使用JavaScript定位CSS鏈接

<link rel="stylesheet" media="(min-width:481px)" href=".../css/custom/styles.css" type="text/css"> 

我需要刪除media="(min-width:481px)"。有沒有辦法做到這一點與JavaScript(我不認爲CMS使用jQuery)?

+3

當然有一種方法。它是否真的會做任何事情都是另一回事。在JavaScript有機會加載之前,樣式表將被加載(或不加載)。只需通過JavaScript加載樣式表,而不是搞亂現有的'link'元素,可能會更好。爲此,在SO上有很多答案,包括:http://stackoverflow.com/q/9979415/215552 –

+0

那麼,什麼樣的CMS,只是解決後端問題會更容易。 – adeneo

+0

我試過聯繫CMS提供商,他100%確定刪除'media =「(min-width:481px)」'不能完成。 – Heather

回答

1

我個人不建議用JavaScript的一個鏈接的元素搞亂,但如果你仍然想這樣做,這應該工作:

document.querySelector('link[href=href=".../css/custom/styles.css"]').removeAttribute('media'); 

如果您仍然想這樣做,一定要等待CSS樣式加載。

如果你想要去的這個解決方案出於某種原因,並做了所有的鏈接標籤,那麼這一個很簡單:

var linkList = document.querySelectorAll('link'); 

for(var i in linkList) { 
linkList[i].removeAttribute('media'); 
} 

始終使用.removeAttribute,而不是使用setAttribute的參數設置爲null 。這通常是不好的做法。

+0

謝謝,這很可能是正確答案,不幸的是我也只是發現他們剝離出任何自定義JS ... – Heather

+0

不客氣。如果您有權訪問服務器端語言文件,則可以手動進行。這將是最好的情況。 –

+0

不幸的是,它是一個設計得很差的CMS,由百萬分之百自信的方式是唯一的方法。 – Heather