使用iframe實現將字符串轉換成DOM對象

使用ajax獲取一個頁面時,不少時候只是想要其中某個節點的數據,可是整個頁面節點那麼多,用正則表達式又很差匹配,相信不少人都但願能用getElementById來獲取,這樣多方便啊。 javascript

但是,要用getElementById就必須先將ajax的response字符串轉換成DOM才行,這是最困擾的地方。以前試了不少方法都沒能成功,經不懈努力,嘿嘿,看下文吧。 html

<iframe name=abc style="display:none"></iframe>
<input type="button" value="點我" onclick="swrite()">
<script language="javascript">
function swrite()
{
	data = "<html><head><title>New Document</title></head><body><input type='text' value='123' id='test'></body></html>";
	abc.document.write(data);
	abc.document.close();
	alert(abc.document.getElementById("test").value);
}
</script>

<iframe>必須是事先寫在頁面中的,不能用createElement動態建立; java

這裏用data模擬ajax的response; ajax

將字符串寫入iframe,須要用write(),而不能用innerHTML,以前嘗試時都是使用innerHTML致使一直失敗; 正則表達式

close()是爲了關閉write()的流,否則瀏覽器會一致處於加載狀態; 瀏覽器

最後就能夠用求之不得的getElementById()函數了,呼呼~ 函數

IE8,FireFox,Chrome測試經過。 測試

相關文章
相關標籤/搜索