問題:我如何申請CSS樣式之前DOM已準備就緒,以便與他們已經應用的DOM負荷,IFchrome.storage.sync.get( 'gacMakeup')等於1?在DOM準備好之前插入CSS到<head>?
我一直在使用Stylish chrome擴展爲我公司的一些內部頁面創建自定義css樣式,現在我正在嘗試創建一個自己的chrome擴展應用並與同事共享這些樣式。
在使用Stylish擴展時,DOM已經完美地加載了所應用的樣式,我希望在我的擴展中具有相同的效果。我嘗試使用jQuery附加CSS代碼,但由於我使用了$('head')。append();顯然它沒有工作,因爲它在dom準備好之後加載。
我有一個eventpage.js設置VAR稱爲gacMakeup使用chrome.storage.sync將被用於開/關切換。在這種情況下,我使用下面的代碼VAR設置爲1的第一開口:
chrome.storage.sync.get('gacMakeup', function(checkMakeup){
if (checkMakeup.gacMakeup == undefined) {
chrome.storage.sync.set({'gacMakeup': '1'});
};
});
這裏面makeup.css的CSS代碼,我想申請如果gacMakeup == 1:
'.lia-stats-area {display: none !important;}
'#lia-body td, #lia-body th {padding: 14px 25px !important;}
'thead#columns {display: none !important;}
'div#pager, div#pager_0 {padding-top: 18px !important;}
'.message-subject-body.wrapper-hide-overflow.message-body.justify {font-size: 13px !important;}
'.lia-info-area {font-size: 11px !important;}
'.lia-list-row.lia-row-odd:hover, .lia-list-row.lia-row-even:hover {background-color: #E3F2FD !important;}
這是我的清單文件:
{
"manifest_version": 2,
"name": "__MSG_appName__",
"description": "__MSG_appDescription__",
"version": "1.0",
"author": "Autor",
"permissions": ["tabs", "activeTab", "storage", "notifications", "https://ajax.googleapis.com/"],
"options_page": "options.html",
"background": {"scripts": ["js/eventpage.js"],"persistent": false},
"web_accessible_resources": ["menu.html"],
"default_locale": "en",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html",
"default_title": "styles"
},
"icons": {"48": "icon.png"},
"content_scripts": [
{
"matches": [ "<all_urls>" ],
"css": ["css/menu.css"],
"js": ["js/jquery-1.12.4.min.js" ,"js/menu.js"]
}
]
}
這不是重複的,因爲我並不想附加CSS文件的時候了。我試圖附加文件,如果chrome.storage.sync.get是== 1 – SoMeGoD
是的,你是對的。對不起。 –
當沒有'document.head'時,Stylish會添加到'document.documentElement'。另外,您可以在內容腳本中訪問chrome.storage.sync。 – wOxxOm