![](/img/trans.png)
[英]Is there any way to get the content of already fetched JavaScript/ CSS/ image of a webpage?
[英]Is there any way to turn a webpage that is styled partially with Javascript into pure HTML and CSS?
您可以迭代document.styleSheets
並在元素的style
屬性處設置每個CSS規則。 當前未在document
呈現CSS偽元素和在HTML元素的HTML style
屬性處設置的類。
查看文檔,Glamour似乎使用該包在頁面的DOM中創建了樣式表。 因此,在對魅力的所有調用完成之后,遍歷文檔樣式表應該會得到結果。 瀏覽樣式表的鏈接示例並不完全需要。 這是一個將CSS定義獲取為可在瀏覽器中使用的文本的示例(從舊樣式代碼進行了修改):
function cssStyleRules(sheets) {
var sheet;
var list;
var rule;
var text="";
if(sheets) {
for(var i = 0; sheet = sheets[i++]; ) {
list = sheet.cssRules;
for( var j = 0; j < list.length; ++j) {
rule=list[ j];
if(rule.type == 1) { // styleRule
text += rule.cssText + '\n';
}
}
}
}
return text;
}
var css = cssStyleRules( document.styleSheets);
// write css to a file in a headless browser
顯然,代碼需要在服務器上的無頭瀏覽器中運行,該瀏覽器將CSS文本寫入文件,然后再由Styleliner處理。
您已經評論到無法按預期從無頭瀏覽器獲取樣式表。 這可能是瀏覽器的錯誤,但是檢查了Glamor.md的實現 。
插入樣式表
我們在瀏覽器的樣式表上使用自己的抽象將規則插入dom。 這種抽象也適用於節點,讓我們可以做SSR之類的工作。它還根據環境使用不同的插入樣式模式,如此處所述
...但是鏈接是存根。 我建議進一步研究實現細節,特別是它們的含義“此抽象也適用於節點”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.