第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

我可以在Internet Explorer中將整個(gè)HTML文檔加載到文檔片段中嗎?

我可以在Internet Explorer中將整個(gè)HTML文檔加載到文檔片段中嗎?

慕桂英3389331 2019-10-11 11:14:06
這是我遇到的一些困難。我有一個(gè)本地客戶端腳本,該腳本需要允許用戶獲取遠(yuǎn)程網(wǎng)頁并在結(jié)果頁面中搜索表單。為了做到這一點(diǎn)(不使用正則表達(dá)式),我需要將文檔解析為一個(gè)完全可遍歷的DOM對(duì)象。我想強(qiáng)調(diào)一些限制:我不想使用庫(如jQuery)。我在這里要做的事情太腫了。在任何情況下都不應(yīng)執(zhí)行遠(yuǎn)程頁面中的腳本(出于安全原因)。諸如的DOM API getElementsByTagName必須可用。它僅需要在Internet Explorer中工作,但至少需要7個(gè)版本。假裝我無權(quán)訪問服務(wù)器。我可以,但是我不能用它。我嘗試過的假設(shè)我在變量中有完整的HTML文檔字符串(包括DOCTYPE聲明)html,這是到目前為止我已經(jīng)嘗試過的操作:var frag = document.createDocumentFragment(),div  = frag.appendChild(document.createElement("div"));div.outerHTML = html;//-> results in an empty fragmentdiv.insertAdjacentHTML("afterEnd", html);//-> HTML is not added to the fragmentdiv.innerHTML = html;//-> Error (expected, but I tried it anyway)var doc = new ActiveXObject("htmlfile");doc.write(html);doc.close();//-> JavaScript executes我也嘗試過從HTML 提取<head>and <body>節(jié)點(diǎn),并將它們添加到<HTML>片段中的元素中,仍然沒有運(yùn)氣。有人有什么想法嗎?
查看完整描述

3 回答

?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊

不確定為什么要弄亂documentFragments,您可以將HTML文本設(shè)置為innerHTML新div元素的。然后,您可以將該div元素用于getElementsByTagNameetc,而無需將div添加到DOM:


var htmlText= '<html><head><title>Test</title></head><body><div id="test_ele1">this is test_ele1 content</div><div id="test_ele2">this is test_ele content2</div></body></html>';


var d = document.createElement('div');

d.innerHTML = htmlText;


console.log(d.getElementsByTagName('div'));

如果您真的對(duì)documentFragment的想法感興趣,則可以使用此代碼,但仍必須將其包裝在div中才能獲得所需的DOM函數(shù):


function makeDocumentFragment(htmlText) {

    var range = document.createRange();

    var frag = range.createContextualFragment(htmlText);

    var d = document.createElement('div');

    d.appendChild(frag);

    return d;

}


查看完整回答
反對(duì) 回復(fù) 2019-10-11
?
長風(fēng)秋雁

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊

我不確定IE是否支持document.implementation.createHTMLDocument,但如果支持,請(qǐng)使用此算法(改編自DOMParser HTML擴(kuò)展)。請(qǐng)注意,DOCTYPE將不會(huì)保留。


var

      doc = document.implementation.createHTMLDocument("")

    , doc_elt = doc.documentElement

    , first_elt

;

doc_elt.innerHTML = your_html_here;

first_elt = doc_elt.firstElementChild;

if ( // are we dealing with an entire document or a fragment?

       doc_elt.childElementCount === 1

    && first_elt.tagName.toLowerCase() === "html"

) {

    doc.replaceChild(first_elt, doc_elt);

}


// doc is an HTML document

// you can now reference stuff like doc.title, etc.


查看完整回答
反對(duì) 回復(fù) 2019-10-11
  • 3 回答
  • 0 關(guān)注
  • 446 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)